FoolPHPPHP 擴(kuò)展 MVC 框架
FoolPHP是由PHP擴(kuò)展實(shí)現(xiàn)的輕量級(jí)MVC框架
在php框架漫天飛的今天為什么還要自己再寫一個(gè)呢?
首先,筆者寫這個(gè)項(xiàng)目的主要目的很單純:學(xué)習(xí)!筆者本人還很年輕,入行兩年一直以二手程序員自居,還有很多很多需要學(xué)習(xí)的地方,我始終堅(jiān)信閱讀前輩的代碼是一個(gè)非常不錯(cuò)的學(xué)習(xí)方式。FoolPHP是我在學(xué)習(xí)PHP擴(kuò)展開(kāi)發(fā)的過(guò)程中作為練習(xí)作業(yè)同時(shí)閱讀參考Yaf而實(shí)現(xiàn)的,所以有些代碼就是Yaf的。@Laruence
其次,雖然已經(jīng)有很多優(yōu)秀的框架供開(kāi)發(fā)者選擇,但是我仍然認(rèn)為一個(gè)團(tuán)隊(duì)實(shí)現(xiàn)自己項(xiàng)目的框架是非常有意義的。筆者迄今為止待過(guò)的三個(gè)團(tuán)隊(duì)無(wú)一例外的都是在使用自己開(kāi)發(fā)的框架,這能夠讓開(kāi)發(fā)更好的掌控項(xiàng)目。
特點(diǎn)
- 非常簡(jiǎn)潔
- 不限制任何類名、文件名、目錄,通過(guò)預(yù)處理的方式將類名及其所在的文件加入autoload
- 類自動(dòng)加載
- 原生php模板引擎
安裝
下載源碼后解壓,如解壓后目錄:FoolPHP-1.0.0 cd FoolPHP-1.0.0 phpize ./configure make && make install 最后將extension=foolphp.so加入php.ini,重啟php-fpm或者其他fastcgi
初始化項(xiàng)目
1.新建一個(gè)目錄,如/websites,將FoolPHP源碼下tools目錄復(fù)制到/websites目錄下
2.執(zhí)行sh tools/install.sh
成功后/websites下多了一個(gè)src目錄,/websites/src結(jié)構(gòu):
├── application
│ ├── controllers
│ │ └── DemoController.php
│ ├── models
│ │ └── DemoModel.php
│ └── views
│ ├── Common
│ │ ├── footer.tpl.php
│ │ └── header.tpl.php
│ └── Demo
│ └── index.tpl.php
├── config
│ ├── config.inc.php
│ └── fool_php_class.map
└── www
└── index.php
3./websites/src/www為web訪問(wèn)目錄,配置web服務(wù)器root :/websites/src/www,訪問(wèn):http://Domain/index.php?m=demo.index
tools工具包
-
install.sh新項(xiàng)目初始化腳本
-
config.php預(yù)處理類配置文件,$application_path值為application目錄:/your_websites/src/application,$config_path為配置文件目錄:/your_websites/src/config,$scan_dir為自動(dòng)加載類掃描目錄,相對(duì)于$application_path的目錄名,如controllers、models、librarys
-
create_map.php預(yù)處理類生成腳本,它會(huì)掃描config.php中配置的$scan_dir目錄下的php文件,生成"類名 => 文件路徑"的記錄到$config_path/fool_php_class.map文件中,這將是使用最頻繁的文件,當(dāng)新增/修改/刪除文件、類、目錄時(shí)都要重新執(zhí)行此腳本,否則將會(huì)運(yùn)行出錯(cuò)
使用此腳本執(zhí)行 php create_map.php即可
