写一个属于自己的PHP的MVC框架(一)

最近想做个PHP的个人博客作为学习用,但是发现尽管把PHP函数用得很熟悉了,按照常规的办法,写一个页面处理一个请求,仅仅一个博客就可能有很多个页面,而且php代码和html代码都结合的非常紧密,如果想要实现更换皮肤的功能,就显得非常无力。在网上找了好多framework框架,但似乎又要开始学习新的一门知识,现在还没有用来做具体开发,所以放弃了使用这些复杂的东西。

这里写这篇文章,其目的能做下笔记,也能为大多数困惑的PHP爱好者提供一些个人的想法。

首先吧,MVC就是model,view,controller

model:就是数据模型吧,我是这样理解的,不同的理解写不同的代码,如果你有好的理解也不要被我误导才好,说白了,就是跟数据有关的一些类。

view:翻译过来叫视图,也可以理解为显示,用来如何控制显示的。

controller:控制器,通常一个页面有好多类型的数据,比如说个人博客吧,有博主资料,文章等等,控制器的工作就是把这些数据组织起来传给视图来显示。

注意:这三个东西都是一些类

首先要搭建PHP网站的环境,让它能够实现单一入口,也就是所有浏览器的请求都指向index.php页面

1,开启apache的rewrite模块(这里只考虑的apache,我想其他服务器也是差不多)

首先找到apache的配置文件,用记事本打开它

这里是D:\AppServ\Apache2.2\conf\httpd.conf

找到#LoadModule rewrite_module modules/mod_rewrite.so这句话,然后把前边的#号去掉

即LoadModule rewrite_module modules/mod_rewrite.so

然后再找到你网站的虚拟目录配置项,把AllowOverride no改为AllowOverride All

然后重启apache服务器就可以了

这里说的不明白的话,大家可以到网上找到相关资料

2,然后建立网站的目录结构

根目录的.htaccess文件内容

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule ^$ public/ [L]

RewriteRule (.*) public/$1 [L]

</IfModule>

public目录的.htaccess文件内容

<IfModule mod_rewrite.c>

Options -Multiviews

RewriteEngine On

Options -Indexes

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

</IfModule>

<IfModule !mod_rewrite.c>

ErrorDocument 404 index.php

</IfModule>

public目录下的index.php文件就是我们网站的单一入口文件了

--------------------------------------------------------------------------------------

app文件夹,可以理解为你网站的具体内容

app-->controller:存放你的控制器类

app->model:存放你的数据模型类

app->view:存放你的模板之类的东西,我这里因为把smarty整合进来了,所以就长这样

其中default文件夹表示默认的主题风格的模板

其index.html就是一些关于smarty的模板代码

时间: 2024-07-31 02:55:12

写一个属于自己的PHP的MVC框架(一)的相关文章

写一个属于自己的PHP的MVC框架(二)

第一篇文章已经把所需的目录搭建好了,接下来的工作就是写一些代码了 用编辑器打开public/index.php文件,写上下面的代码 <?php define(DS, DIRECTORY_SEPARATOR); define(ROOT, dirname(dirname(__FILE__))); $url = $_GET['url']; // 加载引导 require_once( ROOT . DS . 'core' . DS . 'bootstrap.php' ); 入口文件的代码很简洁,其中$u

自己动手写PHP MVC框架

来自:yuansir-web.com / [email protected] 代码下载: https://github.com/yuansir/tiny-php-framework PHP的框架众多,对于哪个框架最好,哪个框架最烂,是否应该用框架,对于这些争论在论坛里面都有人争论,这里不做评价, 个人觉得根据自己需求,选中最佳最适合自己MVC框架,并在开发中能够体现出敏捷开发的效果就OK了,作为一个PHPer要提高自己的对PHP和MVC的框架的认识,所以自己写一个MVC框架是很有必要的, 即使不

【转载】如何写一个框架:步骤(下)

说明:写本文的时候作者完全是把脑子里的东西写了出来,没有参考任何的资料,所以对于每一项内容可能都是不完整的,不能作为一个完整的参考.有一些方法学的东西每个人都有自己的喜好,没有觉得的对和错. 单元测试 在这之前我们写的框架只能说是一个在最基本的情况下可以使用的框架,作为一个框架我们无法预测开发人员将来会怎么使用它,所以我们需要做大量的工作来确保框架不但各种功能都是正确的,而且还是健壮的.写应用系统的代码,大多数项目是不会去写单元测试的,原因很多: 项目赶时间,连做一些输入验证都没时间搞,哪里有时

写一个框架的详细步骤

定位 所谓定位就是回答几个问题,我出于什么目的要写一个框架,我的这个框架是干什么的,有什么特性适用于什么场景,我的这个框架的用户对象是谁,他们会怎么使用,框架由谁维护将来怎么发展等等. 如果你打算写框架,那么肯定心里已经有一个初步的定位,比如它是一个缓存框架.Web MVC框架.IOC框架.ORM/数据访问框架.RPC框架或是一个用于Web开发的全栈式框架. 是 否要重复造轮子?除非是练手项目,一般我们是有了解决不了问题的时候才会考虑不使用既有的成熟的框架而重复造轮子的,这个时候需要列出新框架主

如何写一个框架

定位 所谓定位就是回答几个问题,我出于什么目的要写一个框架,我的这个框架是干什么的,有什么特性适用于什么场景,我的这个框架的用户对象是谁,他们会怎么使用,框架由谁维护将来怎么发展等等. 如果你打算写框架,那么肯定心里已经有一个初步的定位,比如它是一个缓存框架.Web MVC框架.IOC框架.ORM/数据访问框架.RPC框架或是一个用于Web开发的全栈式框架. 是否要重复造轮子?除非是练手项目,一般我们是有了解决不了问题的时候才会考虑不使用既有的成熟的框架而重复造轮子的,这个时候需要列出新框架主要

手把手编写自己的PHP MVC框架实例教程

1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式. MVC把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). PHP中MVC模式也称Web MVC,从上世纪70年代进化而来. MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能. 除此之外,此模式通过对复杂度的简化,使程序结构更加直观. MVC各部分的职能: 模型Model – 管理大部分

使用PHP搭建自己的MVC框架

一.什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此模式通过对复杂度的简化,使程序结构更加直观.软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能.专业人员可以通过自身的专长分组: (控制器Controlle

设计 REST 风格的 MVC 框架

http://www.ibm.com/developerworks/cn/java/j-lo-restmvc/ 传统的 JavaEE MVC 框架如 Struts 等都是基于 Action 设计的后缀式映射,然而,流行的 Web 趋势是 REST 风格的架构.尽管使用 Filter 或者 Apache mod_rewrite 能够通过 URL 重写实现 REST 风格的 URL,为什么不直接设计一个全新的 REST 风格的 MVC 框架呢? 本文将讲述如何从头设计一个基于 REST 风格的 Ja

编写自己的PHP MVC框架笔记

1.MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). PHP中MVC模式也称Web MVC,从上世纪70年代进化而来.MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此模式通过对复杂度的简化,使程序结构更加直观.软件系统通过对自身基本部份分离的同时,也赋予了各个基本部分应有的功能.