用 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 相关文章推荐
输出控制类
Oct 09 PHP
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 PHP
Ajax PHP 边学边练 之三 数据库
Nov 26 PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
Jun 09 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
php实现的mongodb操作类实例
Apr 03 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP手机短信验证码实现流程详解
May 17 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php数据库连接
2006/10/09 PHP
PHP操作XML作为数据库的类
2010/12/19 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
python使用fork实现守护进程的方法
2017/11/16 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
python and or用法详解
2019/06/26 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
教师简历自我评价
2014/02/03 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
技术比武方案
2014/05/19 职场文书
校园文明标语
2014/06/13 职场文书
学雷锋标语
2014/06/25 职场文书
应届大学生求职信
2014/07/20 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书