用 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 相关文章推荐
PHP制作图型计数器的例子
Oct 09 PHP
php Try Catch异常测试
Mar 01 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
基于php判断客户端类型
Oct 14 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
Jan 22 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 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
php下使用SMTP发邮件的代码
2008/01/10 PHP
php根据年月获取季度的方法
2014/03/31 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
Js sort排序使用方法
2011/10/17 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python pandas时序处理相关功能详解
2019/07/03 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
如何利用Python 进行边缘检测
2020/10/14 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
校三好学生主要事迹
2014/01/11 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
金融专业求职信
2014/08/05 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
Java SSM配置文件案例详解
2021/08/30 Java/Android