用 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 XML数据解析代码
May 26 PHP
PHP 命名空间实例说明
Jan 27 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
php实现图片上传并利用ImageMagick生成缩略图
Mar 14 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
PHP的new static和new self的区别与使用
Nov 27 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
PHP $O00OO0=urldecode & eval 解密,记一次商业源码的去后门
Sep 13 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封装CURL
2019/03/06 PHP
Javascript !!的作用
2008/12/04 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
PHP PDO操作总结
2014/11/17 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
Element Badge标记的使用方法
2020/07/27 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python实现多层感知器
2019/01/18 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python 可视化神器Plotly详解
2020/12/26 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
爱国卫生月活动总结范文
2014/04/25 职场文书
军训口号
2014/06/13 职场文书
学习十八大演讲稿
2014/09/15 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript