通过开源项目jnoj学习PHP框架Yii(二)

前言

前面一章中,我们已经下载了jnoj的项目。今天我们将着重分析下该项目的代码构成及每部分的主要功能。

1.代码构成

先来看下代码构成。

在分析代码构成之前,我们先来梳理下正常的Http请求逻辑。

  • 浏览器发起URL请求
  • 服务器转发到php-fpm,fpm解析具体的PHP代码,PHP框架将数据和Html合并拼成最终的html文本,并返回给浏览器。
  • 浏览器渲染该html文本。

2.入口函数

服务器比如nginx在转发时,会将请求转发到入口函数。这个不难理解,任务事物处理外部请求时总得有个对接人吧?比如C语言的main函数等等。Yii框架的入口存在于web/index.php。看过前面文章的同学应该了解,nginx在配置时,通常会将处理配置到该目录下。

    server {
        listen 8080;

        # 修改 root 后的路径为 jnoj/web 目录所对应的路径。看你具体把 jnoj 目录放到哪里。
        root /vagrant/deploy/jnoj/web;


        index index.php;

        server_name _;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ (.+\.php)(.*)$ {
            include /usr/local/nginx/conf/fastcgi.conf;
            fastcgi_intercept_errors on;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }

一般情况下,入口函数有两个,一个是Http请求的入口函数,一个是命令行的入口函数(根目录下的yii文件)。命令行的入口函数为:

仔细对比会发现,两者只有少许的差异,大多数代码都差不多。

3.MVC模式

MVC模式是将获取的连接转发到后端执行的PHP类来处理。比如对于请求/site/index会转发到后端的SiteController的actionIndex方法来处理,这个模式是固定的,也就是框架的使用方法。我们需要做的就是按照框架的使用说明书来使用就行了。那这些Controller都存在于哪儿呢?就在于根目录下的controllers目录下。

通常情况下,controllers有两种,一种是Http请求,另一种是命令行的方式。那么对于命令行,所处理的controller存在于commands目录下。

前文有提到,服务器需要将数据和html文件拼装后组成Html文件返回给浏览器。controller只提供数据,提供Html文件的需要在views目录的PHP类来提供。

4. 数据库配置

对于web项目,通常都要配置数据库的账号密码等等。Yii的配置文件存在于config目录下。

5. 模型层

该部分为ORM框架所必须的,通常跟数据库表字段是一一对应的。常用该框架来方便我们存取数据。其通常存在于models目录下。

其他目录不是特别重要,不了解的同学可以自行百度或者留言,我会一一解读。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值