用 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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
PHP Directory 函数的详解
Mar 07 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
Jul 29 PHP
smarty半小时快速上手入门教程
Oct 27 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 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 strcmp使用说明
2010/04/22 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
php创建图像具体步骤
2017/03/13 PHP
javascript 解析url的search方法
2010/02/09 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
python安装教程
2018/02/28 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
远东集团网络工程师面试题
2014/10/20 面试题
办公室前台的岗位职责
2013/12/20 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
材料加工工程求职信
2014/02/19 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android
Oracle锁表解决方法的详细记录
2022/06/05 Oracle
python实现学生信息管理系统(面向对象)
2022/06/05 Python