用 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面向对象
Feb 22 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
destoon找回管理员密码的方法
Jun 21 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
iOS10推送通知开发教程
Sep 19 PHP
Laravel中间件实现原理详解
Oct 09 PHP
golang 调用 php7详解及实例
Jan 04 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 PHP
PHP strripos函数用法总结
Feb 11 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页面间参数传递的四种方法详解
2013/06/09 PHP
php简单分页类实现方法
2015/02/26 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
javascript 短路法代码精简
2009/08/20 Javascript
JS 对象介绍
2010/01/20 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python重试装饰器示例
2014/02/11 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python之os操作方法(详解)
2017/06/15 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
组织关系转移介绍信
2014/01/16 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis