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 ,就可以使用新框架中的全部功能了.
PHP框架開發教程 四 單一入口
多入口在以前的框架中是存在的,通常可以歸結為 每個模組乙個入口檔案.通過 在入口檔案中配置不同的引數,引導框架 執行不同的路徑.單一入口模式 更為 簡潔,模組名稱只作為乙個入口引數,框架通過判斷模組名稱執行相應的 程式.單一 入口的優點極為明顯 整個框架的流程更為清晰.如果需要在框架層面 增加一些功...
php框架開發四(DAO層)
開發不可避免地要對一些資料進行儲存,但是儲存這些資料各種語言的方式基本上都是 先開啟連線,然後執行sql語句,獲取結結果,關閉連線。那麼php在運算元據庫的時候有哪些方法呢?connect mysql connect host,user,pass mysql select db dbname res...
php的yii框架開發總結9
這一篇講解怎麼實現的自動發郵件的功能,我在網上查了很多資料,很多都是用定時檢測來實現的,我試過,效率太低,也卡了。後來就寫了乙個.bat檔案來實現重新整理頁面,用了windows的定時任務定時來執行該.bat檔案,成功實現了功能。bat檔案 echo offiexplore localhost yi...