利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备

『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 初始化成功!

https://lvwenhan.com/php/405.html

时间: 2024-10-10 10:29:51

利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备的相关文章

利用 Composer 一步一步构建自己的 PHP 框架(二)——构建路由

本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 上一篇中我们已经建立了一个空的 Composer 项目,本篇将讲述如何构建路由. 久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架.在 CI 中我学到了很多,其中对 MVC 的深入理解和对框架本质的理解对我的影响最大.从使用框架是为了提高开发效率的角度来看,框架的本质就是路由. 下面

利用 Composer 一步一步构建自己的 PHP 框架(二)

上一篇中我们已经建立了一个空的 Composer 项目,本篇将讲述如何构建路由. 久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架.在 CI 中我学到了很多,其中对 MVC 的深入理解和对框架本质的理解对我的影响最大.从使用框架是为了提高开发效率的角度来看,框架的本质就是路由. 下面我们就开始自己来构建路由,先去 GitHub 搜一下:点此查看搜索结果 推荐 https://github.com/NoahBuscher/Mac

一步一步跟我学习lucene(7)---lucene搜索之IndexSearcher构建过程

最近一直在写一步一步跟我学习lucene系列(http://blog.csdn.net/wuyinggui10000/article/category/3173543),个人的博客也收到了很多的访问量,谢谢大家的关注,这也是对我个人的一个激励,O(∩_∩)O哈哈~,个人感觉在博客的编写过程中自己收获了很多,我会一直继续下去,在工作的过程中自己也会写出更多类似系列的博客,也算是对自己只是的一种积累: IndexSearcher 搜索引擎的构建分为索引内容和查询索引两个大方面,这里要介绍的是luce

一步一步用jenkins,ansible,supervisor打造一个web构建发布系统

新blog地址:http://hengyunabc.github.io/deploy-system-build-with-jenkins-ansible-supervisor/ 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统. 本来应该还有gitlab这一环节的,但是感觉加上,内容会增加很多.所以直接用github上的spring-mvc-showcase项目来做演示. https://github.com/spring-projects/spring-

一步一步jQuery流程设计器插件goflow(附代码) - 1 - 构建设计器UI界面

之前用Silverlight实现过一个流程设计器(Demo),使用起来不是很方便.打算参考GooFlow,结合自己对工作流的理解,用jQuery改造实现一个,力求简单实用. 第一步是要构建设计器的UI界面,如下: 用到的图标有: 用CSS精灵工具如CSS Satyr可以把它们合在一起. C#的String.format用习惯,觉得js里拼字符串不好使,先模拟实现一个: function formatString() { var formatStr = arguments[0]; if (type

【计算机视觉】一步一步实现人脸或特定物体的跟踪(1)——利用CamShift来跟踪

介绍 这里的方法是根据颜色直方图的方式进行人脸或者特定物体的跟踪的,具体步骤是首先计算指定区域的色彩直方图,然后再根据该色彩直方图对整个图片区域进行反投影计算,得到的是该图片中复合指定区域色彩直方图分布的概率分布,最终通过多次迭代,得到一个输出的目标窗口. 实例代码 下面是OpenCV提供的演示代码 #include "StdAfx.h" #include "opencv2/video/tracking.hpp" #include "opencv2/img

一步一步构建手机WebApp开发——页面布局篇

继上一篇:一步一步构建手机WebApp开发——环境搭建篇过后,我相信很多朋友都想看看实战案例,这一次的教程是页面布局篇,先上图: 如上图所示,此篇教程便是教初学者如何快速布局这样的页面.废话少说,直接上代码 注意:此教程是接上一篇教程,也就是所有的内容是直接从body开始写,当然,也会贴出所有代码给大家. 第一步:框架的布局及幻灯片的布局(Html) ① 如上图所示,我们应该准备以下容器,方便填充内容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

利用 Composer 完善自己的 PHP 框架(一)——视图装载

本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顾 经过了上一个 系列教程  <利用 Composer 一步一步构建自己的 PHP 框架> ,我们组建了一个具有  路由 . MVC 架构  和  ORM  功能的基础框架  MFFC .接下来我们继续完善这个项目. 我们先从目前用着  最不爽  的地方——视图装载下手.我们将封装一个视图装载类,让它来帮我们装载视图,并把变量传递进视图.这个类将只

一步一步学会puppet(二)--模块和类

上一篇主要介绍了puppet的基本工作原理和资源的相关初步使用: 这一篇主要介绍puppet中很重要的2个概念:模块和类: =================================================================== 1 模块 1.1 需求 1.2 定义 1.3 详细说明 1.4 模块的目录组织结构 1.5 模块管理 2 类 2.1 定义 2.2 详细说明 2.3 类的分类 2.4 类的声明 2.5 实例 ========================

一步一步学会puppet(一)

简介 puppet是一种Linux.Unix.windows平台的集中配置管理系统: 使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等,puppet把这些系统实体称之为资源: puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系 puppet的基础架构 puppet是集中式的配置管理工具,通过自有配置语言对节点进行目标状态定义,并能够基于网络实现目标状态的维护: puppet的工作模型 puppet通过声明性.基于模块的方法进行IT自动化