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

“一个时代结束了,另一个时代开始了。”

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

稍等片刻,会出现如下文件及文件夹:

977666d21c3ba164f60c8236b9da55c9.png

如果以上内容成功出现,恭喜你,Composer 初始化成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二维数组各行分别求和_【PyTorch入门】之十分钟看懂二维卷积层的运算、实现及应用...

原文链接:【动手学深度学习笔记】之二维卷积层​mp.weixin.qq.com1.二维卷积层本节介绍卷积神经网络中最常见的二维卷积层。二维卷积层常用来处理图像数据,它具有两个空间维度(高和宽)。1.1二维互相关运算1.1.1原理分析在二维互相…

python3 UnicodeEncodeError: 'ascii' 错误

2019独角兽企业重金招聘Python工程师标准>>> python 3.4 使用urllib.request.urlopen() 打开url时候,如果url中包含中文,出现了“UnicodeEncodeError: ascii codec cant encode ”的错误,修复步骤如下 在url中有中文的地方加入…

小女生的Linux技术~~~Linux常识~~21-30

小女生的Linux技术~~~Linux常识~~21-30 Q21 如何查看当前用户的系统行为? A: 使用命令w查看当前用户的系统行为, w root Q22 如何查看曾经登录系统的用户名 ? A:使用who命令查看当前用户登录情况 who -u更详细些 Q23查看所有进程的方法是什么&#xff…

让批处理文件(.bat)程序无窗口(隐藏/静默)运行

将下面的代码保存为.vbs 文件,把 test.bat 改成你的批处理文件,然后运行.vbs 文件 --------------------------------------------------------------set GuWSWScript.CreateObject("WScript.Shell") GuWS.Run "test.bat",vbhide转载…

女朋友的道歉方式

1 女朋友的道歉方式2 看吧,无聊的时候什么事都干得出来3 这猫太坏了!4 还以为是特效,原来是实物 5 叉子的妙用6 也太信任这块玻璃了吧……7 棉花糖炸酱面......大家感受一下你点的每个赞,我都认真当成了喜欢

单元测试(三)基本使用

介绍本文来演示一下同事教导后的写法,同样有些单元测试是为了演示而写的单元测试。本文使用组件:Xunit、Moq以及dotNet相关知识注:本文内容基于上一篇操作首先指定一个方法编写单元测试,并且要保证没有其他因素干扰的情况下去进行…

重力模型matlab代码,STK基础教程.doc

STK基础教程STK基础教程By appe1943西安交通大学目 录TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc367480315" 1 STK软件简介 PAGEREF _Toc367480315 \h 1HYPERLINK \l "_Toc367480316" 1.1 STK软件简介 PAGEREF _Toc367480316 \h 1HYPERLINK \l &…

帆软帮助文档_帆软:像阿甘一样,奔跑在商业智能的赛道上

戳蓝字“CSDN云计算”关注我们哦!作者 | 晶少出品 | CSDN云计算(ID:CSDNcloud)故事开始于一片洁白的羽毛,从空中降落缓缓飘过房屋、街道、树梢,最终落在了主人公阿甘的脚旁,他没有过多思考就将羽毛轻轻收藏书中……这是…

sed简单用法

一、替换1、将替换后的文本显示在屏幕上sed s/pattern/replace_string/ file或者通过管道cat file|sed s/pattern/replace_string/2、替换源文件中的文本sed s/pattern/replace_string/g file或者sed -i s/pattern/replace_string/ file从第N处开始替换匹配的行sed s/pattern/r…

字符串表达式求值 C#实现

using System;using System.Collections.Generic;using System.Windows.Forms; namespace ExpressionResult1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } //建立一个数栈和一个操作符栈 …

叫板BBC!80后湖南姑娘,花3年首次拍出水下的中国,惊艳了全世界

全世界只有3.14 % 的人关注了爆炸吧知识众所周知,中国拥有约960万平方公里的陆地面积,我们生活在这片大地之上。但却鲜有人知道,中国的水下也有一座城。这是一座位于杭州千岛湖下的千年古城,历经61年,它们在水底&#…

php开启mysqlnd,如何启用mysqlnd的php?

我有PHP安装和运行(版本:5.3.17),我想切换到mysqlnd(在phpinfo mysqlnd不存在)。我读了,为了设置它,你需要更新./configure命令:./configure --with-mysqlmysqlnd \--with-mysqlimysqlnd \--with-pdo-mysqlmysqlnd \当…

***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象...

http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value (存一个对象的时候key存) 将哈希表 key 中的域 field 的值设为 value 。 如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。 如果域 field 已经存在于哈希表中&#xff…

lua loadstring传递参数_lua学习之函数篇

函数函数是对语句和表达式进行抽象的主要机制两种用法一是可以完成特定的任务,一句函数调用被视为一条语句二是以只用来计算并返回特定的结果,视为一句表达式print("Hello, World")a math.sin(3) math.cos(10)print(os.date())​无论哪种用法…

Redhat Linux编译安装LAMP环境

一:准备软件包存放/home/xiutuo/software/目录下。主要软件包:1. httpd-2.2.6.tar.gz 2. mysql-5.0.45-linux-i686-glibc23.tar.gz (这个版本是已编译好的压缩包,解压后稍做配置即可使用)3. php-5.2.5.tar.gz安装php所需的软件包(…

EF Core 6 简化的数据库上下文注册

EF Core 6 简化的数据库上下文注册IntroEF Core 6 将简化现在的服务注册,DbContext 的服务注册将会更简单一些Sample直接来看示例代码吧:现在我们注册 EF Core 的 DbContext 通常是这样的:const string connectionString "DataSourcete…

Nginx指南

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。更多的请见官方wiki:http://wiki.nginx.org/Main 。 其优点…

快要“成精”的波士顿机械狗,开始卖了,价格不贵准备搞一只

全世界只有3.14 % 的人关注了爆炸吧知识重磅消息:这只全球著名的网红狗终于。。开!售!了!哦,不对,放错图了!应该是这只!一起来看看视频介绍——6月17日,据科技时报&#…

php3.23,MySQL 3.23.40 又发布了-PHP教程,PHP基础

mysql 3.23.40 又发布了。修正了–low-priority-updates 和 insert 的问题。修正了从进程在一些特别的情况下超前主进程 22 字节的问题。为复制增加了 slave_wait_timeout修正了 update 和 bdb 表的问题。修正了bdb 表使用 key parts 的问题。修正了使用 grant file on databas…

用java写了一个汉诺塔

package com.brzhang;/*** 汉诺塔* 开始盘子全部都放在第一根柱子上* 目的:将第一根柱子上的盘子全部移动到第三根柱子上,规则是不能编号较大的盘子放在编号交小的盘子上面。**/ public class HanoTa {private long steps 1l;/**** param n 盘子个数* p…