用 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 相关文章推荐
Zend framework处理一个http请求的流程分析
Feb 08 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
php实现的Cookies操作类实例
Sep 24 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
10个超级有用的PHP代码片段果断收藏
Sep 23 PHP
PHP浮点比较大小的方法
Feb 14 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
php swoft框架实例用法
Dec 22 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知识收集
2012/08/20 PHP
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
使用PYTHON接收多播数据的代码
2012/03/01 Python
python中的一些类型转换函数小结
2013/02/10 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
初二学生评语大全
2014/12/26 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
企业投资意向书
2015/05/09 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
世界名著读书笔记
2015/06/25 职场文书
新年祝酒词大全
2015/08/11 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
MySQL七种JOIN类型小结
2021/10/24 MySQL
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js