·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> php框架教学

php框架教学

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php框架教学

目标: 学习型PHP框架、框架的代码少、 简单易懂、 方便拓展

第一步:

在windows上开发框架,第一步就是开启Apache的rewrite模块。

今天(2014-NOV-6)被这个问题困扰了4个小时!我不断地更改.htaccess文件的重修规则,怎么弄都不对!后来才发现原因是:linux下,开启rewrite的方法和windows下的不一样!

在windows下开启方法如下:

1.打开Apache配置文件:httpd.conf。找到如下信息

<Directory "D:/lamp/apache/htdocs">    #    # AllowOverride controls what directives may be placed in .htaccess files.    # It can be "All", "None", or any combination of the keyWords:    #   Options FileInfo AuthConfig Limit    #    AllowOverride None

2.注意到上面的”AllowOverride None“了吗? 改成”AllowOverride All“。重启服务器,完毕!

3.补充说明,要注意到,我们是在<Directory "D:/lamp/apache/htdocs"> 目录下改的。与它相似的还有<Directory /> 和<Directory "D:/lamp/apache/cgi-bin">。您要知道,在后两者里面改是无效的,而我今天用四个小时就是在证明,证明改后两者是无效的.......

第二步:编写.htaccess规则

1.在windows下创建.htaccess文件。新建txt文档,打开后点击另存为,选择所有格式。输入文件名.htaccess,保存OK!

2.编写rewrite规则。

<IfModule mod_rewrite.c>        RewriteEngine on        #不显示index.php        RewriteBase /        RewriteCond %{REQUEST_FILENAME} !-d        RewriteCond %{REQUEST_FILENAME} !-f                RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]</IfModule>

3.保存,打开浏览器输入http://localhost/model/action  如果请求被重定向到了index.php下则成功,否则请继续往下看。

4.未成功定向到index.php下。

  4.1现象:404 Not Found

    原因一:您的index.php在Apache服务目录下的”子目录“里,然后您注意到了吗?rewrite规则是重定向到/index.php下的,也就是根目录下的index.php文件。

   解决方案1:修改rewrite重写规则。找到

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

   修改成:

RewriteRule ^(.*)$ 子目录名/index.php?$1 [QSA,PT,L]

  补充:我今天(2014-NOV-6)就是被这个问题困扰一下午的!

第三步:原理解析

  框架的原理是这样的。

  1. A类解析URL,得到所请求的Controller名和Action名,然后动态地初始化对应的Controller类,动态初始化类的代码如下:
    $app = new $controller();$app->$action();
  2. 所有的自定义Controller类(比如LoginController、IndexController)都继承一个Controller类。

    class IndexController extends Controller{}class LoginController extends Controller{}