FoolPHP是由PHP扩展实现的轻量级MVC框架
在php框架漫天飞的今天为什么还要自己再写一个呢?
首先,笔者写这个项目的主要目的很单纯:学习!笔者本人还很年轻,入行两年一直以二手程序员自居,还有很多很多需要学习的地方,我始终坚信阅读前辈的代码是一个非常不错的学习方式。FoolPHP是我在学习PHP扩展开发的过程中作为练习作业同时阅读参考Yaf而实现的,所以有些代码就是Yaf的。@Laruence
其次,虽然已经有很多优秀的框架供开发者选择,但是我仍然认为一个团队实现自己项目的框架是非常有意义的。笔者迄今为止待过的三个团队无一例外的都是在使用自己开发的框架,这能够让开发更好的掌控项目。
下载源码后解压,如解压后目录:FoolPHP-1.0.0 cd FoolPHP-1.0.0 phpize ./configure make && make install 最后将extension=foolphp.so加入php.ini,重启php-fpm或者其他fastcgi
1.新建一个目录,如/websites,将FoolPHP源码下tools目录复制到/websites目录下
2.执行sh tools/install.sh
成功后/websites下多了一个src目录,/websites/src结构:
├── 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访问目录,配置web服务器root :/websites/src/www,访问:http://Domain/index.php?m=demo.index
install.sh新项目初始化脚本
config.php预处理类配置文件,$application_path值为application目录:/your_websites/src/application,$config_path为配置文件目录:/your_websites/src/config,$scan_dir为自动加载类扫描目录,相对于$application_path的目录名,如controllers、models、librarys
create_map.php预处理类生成脚本,它会扫描config.php中配置的$scan_dir目录下的php文件,生成"类名 => 文件路径"的记录到$config_path/fool_php_class.map文件中,这将是使用最频繁的文件,当新增/修改/删除文件、类、目录时都要重新执行此脚本,否则将会运行出错
使用此脚本执行 php create_map.php即可
软件简介 FoolPHP是由PHP扩展实现的轻量级MVC框架 在php框架漫天飞的今天为什么还要自己再写一个呢? 首先,笔者写这个项目的主要目的很单纯:学习!笔者本人还很年轻,入行两年一直以二手程序员自居,还有很多很多需要学习的地方,我始终坚信阅读前辈的代码是一个非常不错的学习方式。FoolPHP是我在学习PHP扩展开发的过程中作为练习作业同时阅读参考Yaf而实现的,所以有些代码就是Yaf的。@L
FoolPHP PHP扩展实现的轻量级MVC框架 说明 FoolPHP是在学习PHP扩展开发的过程中作为练习作业同时阅读参考Yaf而实现的,所以有些代码就是Yaf的。@Laruence @Walu 这个框架的比较简洁,仅实现最核心的dispatcher。 特点 简洁 不限制任何类名、文件名、目录,通过预处理的方式将类名及其所在的文件加入autoload 类自动加载 原生php模板引擎 安装 从gi
FoolPHP PHP扩展实现的轻量级MVC框架 说明 FoolPHP是在学习PHP扩展开发的过程中作为练习作业同时阅读参考Yaf而实现的,所以有些代码就是Yaf的。@Laruence @Walu 这个框架的比较简洁,仅实现最核心的dispatcher。 特点 简洁 不限制任何类名、文件名、目录,通过预处理的方式将类名及其所在的文件加入autoload 类自动加载 原生php模板引擎 安装 从gi
第十三章介绍了如何开发一个Web框架,通过介绍MVC、路由、日志处理、配置处理完成了一个基本的框架系统,但是一个好的框架需要一些方便的辅助工具来快速的开发Web,那么我们这一章将就如何提供一些快速开发Web的工具进行介绍,第一小节介绍如何处理静态文件,如何利用现有的twitter开源的bootstrap进行快速的开发美观的站点,第二小节介绍如何利用前面介绍的session来进行用户登录处理,第三小
本文向大家介绍ASP.NET MVC HtmlHelper如何扩展,包括了ASP.NET MVC HtmlHelper如何扩展的使用技巧和注意事项,需要的朋友参考一下 一、ASP.NET 扩展方法三要素 (1)、静态类 可以从下图看出,InputExtension首先是一个静态类; (2)、静态方法 既然是静态类,那么其所有的方法必然都是静态方法,例如:public static MvcHtmlS
本文向大家介绍Thinkphp 框架扩展之驱动扩展实例分析,包括了Thinkphp 框架扩展之驱动扩展实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp 框架扩展之驱动扩展。分享给大家供大家参考,具体如下: 每个类库都可以设计自己的驱动,因此3.2版本的驱动目录没有独立出来,而是放到各个类库的命名空间下面,例如:Think\Log类的驱动放到 Think\Log\Dr
本文向大家介绍Thinkphp 框架扩展之类库扩展操作详解,包括了Thinkphp 框架扩展之类库扩展操作详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp 框架扩展之类库扩展操作。分享给大家供大家参考,具体如下: 类库扩展 ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。 公共类库 公共类库通常是
Swoole扩展 到GitHub首页下载Swoole扩展源码,地址:https://github.com/swoole/swoole-src 下载后按照标准的PHP扩展编译方式进行编译和安装。一般是 phpize ./configure make install 编译安装完后,修改php.ini加入extension=swoole.so开启swoole扩展。也可以通过dl('swoole.so'
CodeIgniter 的钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改 核心文件。CodeIgniter 的运行遵循着一个特定的流程,你可以参考这个页面的 应用程序流程图 。但是,有些时候你可能希望在 执行流程中的某些阶段添加一些动作,例如在控制器加载之前或之后执行一段脚本, 或者在其他的某些位置触发你的脚本。 启用钩子 钩子特性可以在 application/config/conf
本文向大家介绍Laravel框架中扩展函数、扩展自定义类的方法,包括了Laravel框架中扩展函数、扩展自定义类的方法的使用技巧和注意事项,需要的朋友参考一下 一、扩展自己的类 在app/ 下建立目录 libraries\class 然后myTest.php 类名格式 驼峰 myTest 在 app/start/global.php 用 make 载入 二、扩展自己的函数 在app/ 下建立目录
本文向大家介绍ThinkPHP框架设计及扩展详解,包括了ThinkPHP框架设计及扩展详解的使用技巧和注意事项,需要的朋友参考一下 ThinkPHP框架是国内知名度很高应用很广泛的php框架,我们从一些简单的开发示例中来深入了解一下这个框架给我们带来的开发便捷性,以及游刃有余的扩展设计。同时也从源码分析的角度看看框架的一些不足,尽量做全面客观的评价。这里假设大家已经使用过ThinkPHP框架,基本