PHP框架开发教程(三) 入口文件

public/index.php  这是整个框架的单一入口

 

// 定义框架所有目录常量,就在当前目录的上一级,例: wamp/www/
define('DIR_ROOT', dirname(__DIR__) . '/');

// 导入框架类
require_once (DIR_ROOT . 'system/frame.system.php');

// 运行框架
SFrame::run();


这里只有三句话, 我想尽可能让这个文件简洁一些.

1.努力避免全局常量/变量, 我只定义了一个, 用来记录 根目录的物理路径,即前文中 的根路径

2.包含框架类,并且运行框架

3.其余的事情 由框架类来实现



但即使是单一入口的框架,就真的只有一个入口么? 


现在我来说第二个入口.


业务中经常会出现这样的需求: 在控制台上运行一个PHP程序 ,或者由定时任务启动一个PHP程序

此需求与正常的WEB请求是有差别的

1.运行时间可能 较长

2.通常不会输出 HTML,而是 记录日志或输出到控制台(ECHO)


我在system下创建了这样的入口文件 system/program.php

/**
 * 作为 命令行模式使用的包含文件
 */
// 定义框架所有目录常量,就在当前目录的上一级,例: wamp/www/
define('DIR_ROOT', dirname(__DIR__) . '/');

//包含核心函数库
require_once ('frame.system.php');

//处理命令行请求
SFrame::program();


发现没有?与index.php 只有一点点的差别



还有没有第三个入口? 
有的.  

我经常遇到旧系统改造的需求:一个使用了其它的框架或者没有使用框架的系统,由于代码混乱或运行效率问题或扩展问题导致项目要进行重构
,而且,同时还要求, 改造过程中,项目还要运行~~~~~

怎么办? 花2-6个月去重构,然后更换? 老板是不能接受的!

我采取的方案是: 把我的框架 "嵌入" 到原系统 中, 将原系统 的功能逐渐 迁移到新框架中, 这要持续更长的开发时间,但这段时间内,不会影响系统 的正常使用

这就引出了第三个入口: system/plugin.php
/**
 * 本框架作为插件模式的入口
 * 用于与其它框架配合使用
 */
// 定义框架所有目录常量,就在当前目录的上一级,例: wamp/www/
define('DIR_ROOT', dirname(__DIR__) . '/');

//包含核心函数库
require_once ('frame.system.php');

只要有旧系统中,最好是入口文件或公共包含文件中 引入了这个 plugin.php ,就可以使用新框架中的全部功能了.



你可能感兴趣的:(Web开发,PHP)