用 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 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
PHP生成静态页面详解
Nov 19 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
PHP 文件上传源码分析(RFC1867)
Oct 30 PHP
php实现mysql封装类示例
May 07 PHP
php学习笔记之基础知识
Nov 08 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
PHP简单实现文本计数器的方法
Apr 28 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 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
smarty的保留变量问题
2008/10/23 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
利用Python进行异常值分析实例代码
2017/12/07 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
如何理解python中数字列表
2020/05/29 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
学校司机岗位职责
2013/11/14 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
董存瑞观后感
2015/06/11 职场文书
家庭经济困难证明
2015/06/23 职场文书
岗位聘任协议书
2015/09/21 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
Node实现搜索框进行模糊查询
2021/06/28 Javascript