Composer 常用功能

来源:互联网 发布:网络侦探攻略 编辑:程序博客网 时间:2024/05/22 14:17
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

(一)如何添加包: 

packagist 是 Composer 的主要资源库。 一个 Composer 的库基本上是一个包的源:记录了可以得到包的地方。
Packagist 的目标是成为大家使用库资源的中央存储平台。这意味着你可以 require 那里的任何包。
当你访问 packagist website (packagist.org    https://packagist.org/ ),你可以浏览和搜索资源包。

如果想要添加CI框架,composer.json文件可以写成: 

{"require" :{  "monolog/monolog": "1.0.*",   // monolog库  "codeigniter/framework": "3.0rc3"  // CI 包 }}

执行composer install 后,在vendor 文件夹下会出现codeigniter文件夹和monolog文件夹; 

(二) Composer 中的自动加载 

"autoload": {        "psr-4": { "App\\": "src/"}    }

key和value就定义出了namespace以及到相应path的映射。按照PSR-4的规则,
当试图自动加载 "Foo\\Bar\\Baz" 这个class时,会去寻找 "src/Bar/Baz.php" 这个文件,
如果它存在则进行加载。注意, "Foo\\"
注意在测试文件中一定要加载"require '../../../vendor/autoload.php';" 文件,只用加载了这个文件,其他的才不用加载; 
例如在文件src/Bll/Foo.php 

代码为:  
// 命名空间 namespace App\Bll;class UserBll {public static function  test(){echo  'thisi is auto_loader ' ; }}

测试文件: src/Controller/test.php 
namespace App\Controller;use  App\Bll\UserBll;require '../../../vendor/autoload.php';  // 一定要加上此文件才可以 UserBll::test();

详情见:
http://www.tuicool.com/articles/mARrMj6
http://my.oschina.net/u/248080/blog/359008
http://my.oschina.net/houlive/blog/206832

 加载类: 在本地文件中创建 lib/Payment.php
 namespace PaymentGateway;  class Payment {      public function process()      {          echo 'hello world ' ;      }  }  
 
composer.json 中如下:
  "autoload": {        "classmap":["lib"]    }
执行命令: composer dump-autoload 

测试文件
namespace Paf\App\Controller;use Paf\App\Bll\UserBll;use Payment\Payment;require '../../../vendor/autoload.php';UserBll::test();Payment::process();
如果不use的话可以这么写: 
require '../../../vendor/autoload.php';\Paf\App\Bll\UserBll::test();\Payment\Payment::process();

(三)  创建一个自己的 Composer/Packagist 包

(1)  在gitlub上托管一个git仓库

(2) 在根目录中添加 composer.json 文件,文件内容如 

 {    "name": "louis/wlt-miaomu",    "description": "In order to develop the miaomu cite ",    "license": "MIT",    "authors": [        {            "name": "Louis",            "email": "wang**@163.com"        }    ],    "minimum-stability": "dev",    "require": {        "php": ">=5.3.0"    },    "autoload": {        "psr-4": {            "Ford\\Fusion\\": "src/Ford/Fusion",            "Ford\\Focus\\": "src/Ford/Focus",            "Ford\\Fiesta\\": "src/Ford/Fiesta"        }    }}
  

 (3) 在 https://packagist.org中注册账号,这里可以使用gitlub的账号使用

   点击check  Package ,然后输入  gitlub中仓库的地址 ****.git 
  点击submit Package

参考文献
http://my.oschina.net/houlive/blog/206832 ; 



1 0
原创粉丝点击