用 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下载远程文件类(支持断点续传)
Nov 14 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
ubuntu12.04使用c编写php扩展模块教程分享
Dec 25 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
php文件上传的两种实现方法
Apr 04 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
如何在PHP中使用AES加密算法加密数据
Jun 24 PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 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/10/03 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
PHP attributes()函数讲解
2019/02/03 PHP
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
浅谈webpack对样式的处理
2018/01/05 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
详解在Python程序中使用Cookie的教程
2015/04/30 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
Django对models里的objects的使用详解
2019/08/17 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Python for循环与getitem的关系详解
2020/01/02 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
降消项目实施方案
2014/03/30 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
初中美术教学反思
2016/02/17 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python