用 Composer构建自己的 PHP 框架之基础准备


Posted in PHP onOctober 30, 2014

『Composer 一统天下的时代已经到来!』

——白岩松

“一个时代结束了,另一个时代开始了。”

Framework Interoperability Group(框架可互用性小组),简称 FIG,成立于 2009 年。FIG 最初由几位知名 PHP 框架开发者发起,在吸纳了许多优秀的大脑和强健的体魄后,提出了PSR-0 到 PSR-4 五套 PHP 非官方规范:

1. PSR-0 (Autoloading Standard) 自动加载标准

2. PSR-1 (Basic Coding Standard) 基础编码标准

3. PSR-2 (Coding Style Guide) 编码风格向导

4. PSR-3 (Logger Interface) 日志接口

5. PSR-4 (Improved Autoloading)自动加载优化标准

之后,在此标准之上,Composer横空出世!Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统。Composer 类似著名的 npm 和 RubyGems,给海量 PHP 包提供了一个异常方便的协作通道,Composer Hub 地址:https://packagist.org/。Composer 中文网站:http://www.phpcomposer.com/。

目前 PHP 界风头正劲的 Laravel 和 Symfony 均直接基于 Composer,大家耳熟能详著名框架 CI 和 Yii 的正开发版本CodeIgniter 3 和 Yii 2 也都基于 Composer(更新:北京时间2014年10月13日 Yii 2 已经发布)。Composer 就是 PHP 框架的未来,有了它,让 CI 的路由和 Laravel 的 Eloquent ORM 协作就会变的非常简单。

PHP 语言本身就带有强大的网络功能、文件管理功能和丰富的系统 API,Composer 也只是一段 PHP 脚本而已。可以使用

php composer.phar update

直接调用。

在合适的地方新建一个文件夹,命名为 MFFC(My First Framework based on Composer),在文件夹下新建文件 composer.json:

{ "require": { }}

命令行切换到 MFFC 目录下,运行:

composer update

稍等片刻,会出现如下文件及文件夹:

用 Composer构建自己的 PHP 框架之基础准备

如果以上内容成功出现,恭喜你,Composer 初始化成功!

PHP 相关文章推荐
建立动态的WML站点(一)
Oct 09 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
php 删除无限级目录与文件代码共享
Nov 22 PHP
一些php技巧与注意事项分析
Feb 03 PHP
php简单实现快速排序的方法
Apr 04 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
Swoole 5将移除自动添加Event::wait()特性详解
Jul 10 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
PHP如何防止用户重复提交表单
Dec 09 PHP
PHP内存溢出优化代码详解
Feb 26 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 #PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 #PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 #PHP
如何让CI框架支持service层
Oct 29 #PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 #PHP
PHPUnit安装及使用示例
Oct 29 #PHP
laravel安装和配置教程
Oct 29 #PHP
You might like
DIY实用性框形天线
2021/03/02 无线电
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
php数组去重的函数代码
2013/02/03 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python如何生成树形图案
2018/01/03 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
户外拓展活动方案
2014/02/11 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
安全主题班会教案
2015/08/12 职场文书
银行服务理念口号
2015/12/25 职场文书
PHP基本语法
2021/03/31 PHP
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle