使用composer自动加载扩展TP代码(插件化、自定义类)

    在PHP开发中有一个自动加载的代码库是用Composer管理。只要本地安装一个Composer就可以轻松的管理项目,为其添加各种开源的优秀代码库。今天要在这里介绍一下,使用composer的自动加载扩展TP代码。

1、Composer的简介

    Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer不是一个包管理器,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

2、例子:(使用thinkphp-3.2.5框架)

    本次实例是用thinkphp-3.2.5版本,另外Thinkphp5.0和Thinkphp5.1版本的项目有用Composer进行包管理使用起来会比TP3.2方便。

    (1)在项目的根目录下,创建Addons目录;Addons目录创建Article目录;在Article目录下创建Site.php文件,写入如下代码:

<?php
namespace Addons\Article;//使用当前的目录结构作为命名空间
 
class Site{
	public function show(){
		echo __METHOD__;//显示当前方法的调用路径
	}
}
 
?>

    (2)在前台首页控制器中,写入如下代码:

<?php
namespace Home\Controller;

use Think\Controller;

class IndexController extends Controller
{
    public function index()
    {
		(new \Addons\Article\Site())->show();
	}
}

    (3)在项目根目录下创建composer.json文件或者修改原有的文件,代码如下:

{
    "name": "topthink/thinkphp",
    "description": "the ThinkPHP Framework",
    "type": "framework",
    "keywords": ["framework","thinkphp","ORM"],
    "homepage": "http://thinkphp.cn/",
    "license": "Apache-2.0",
    "authors": [
        {
            "name": "liu21st",
            "email": "liu21st@gmail.com"
        }
    ],
    "require": {
        "php": ">=5.3.0"
    },
	"autoload": {
        "psr-4": {
			"Addons\\":"Addons"
        }
    },
    "minimum-stability": "dev"
}

    (4)在项目的入口文件index.php中添加,如下代码:

require 'vendor/autoload.php';

(5)最后用命令行进入项目的根目录,执行如下代码(在composer中添加自动加载的模块):

composer dumpautoload


    运行结果如下:


例子下载地址:https://pan.baidu.com/s/1AKhvmBRZdlWAg7GoBCKjnA  提取码:z6io 

3、附加知识

    在使用Composer安装PHP的扩展包(扩展类库)时,有两种安装方法:

一是、在项目根目录下创建Composer配置文件“composer.json”,然后用命令行进入根目录执行如下代码即可扩展。

composer install

一是、直接指定要安装扩展包,如扩展“zhoujun165/think-addons”包,执行命令如下。

composer require zhoujun165/think-addons

Composer常用命令:

    (1)composer install:安装扩展包,前提条件是项目已经有“composer.json”配置文件;

    (2)composer create-project 项目名称 文件名(安装到指定目录),例如,安装topthink/think项目到tp目录下

composer create-project topthink/think tp

    (3)composer update 项目名称,更新指定包,例如,更新topthink/framework包:

composer update topthink/framework

    (4)composer dumpautoload:更新自动加载文件配置,可用于增加自动加载的扩展包。






分享此文到: