phpcmsv9的启动过程
当网站架设完成后,可以供浏览者访问,只要在浏览器端使用浏览客户端发送相应的请求即可,可以使用多种客户端设备进行访问。
架设网站完成后使用的URL为http://www.testv9.com/index.php
当服务器端接受这样的请求时,会进行解析。浏览器和服务器之间的请求反馈的过程
在底层是使用socket实现的,在php中可以直接使用fsocketopen函数就是这样的函数,浏览器要做的是构建请求相关的参数并使用socket发送给服务器端。
http://www.testv9.com/index.php这个请求使用的是默认的系统的前端的页面,在这个页面中的代码只有三行,只是启动了整个应用,进行请求的处理。
define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
include PHPCMS_PATH.'/phpcms/base.php';
pc_base::creat_app();
这三行代码做的事情是:
定义根路径,加载框架中的启动类,调用启动类的静态方法启动应用。
每个请求都会触发这样的请求,如果每次都使用重复的过程启动应用,加载资源文件,解析后返回给浏览者,这样的过程增加了服务器端的计算量,也是重复计算,在管理后台中可以使用生成首页的功能,生成index.html页面,进行性能的优化。当请求到来时,
只要返回index.html中的内容就可以了,不用再计算php中的代码内容。是服务器端的负载能力得到了提升。
phpcms中的base.php
关于phpcmsv9中的系统目录
使用不同的目录结构要在加载时根据不同的路径进行加载,根据定义的目录结构,要加载时可以根据名字进行文件路径的组合。
base.php
这是前端和后台管理公用的部分,后台管理的部分放在了phpcms中。在base.php中使用的是面向对象的方式实现的加载功能,模型,控制器,配置文件,系统函数,autoload的系统级类(这是私有的方法系统级的类只在框架内使用),autoload的系统级函数,autoload的应用级类,autoload的应用级函数,插件类,插件函数,这些加载函数是public static的,使用时和在index.php中的使用方式是相同的方式,使用类名和静态方法名的方法,这是个随处可用的加载器。