首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Composer安装CakePHP插件和帮助器

通过Composer安装CakePHP插件和帮助器
EN

Stack Overflow用户
提问于 2013-06-03 08:59:28
回答 2查看 4.2K关注 0票数 4

我想通过Composer安装以下插件和助手:

代码语言:javascript
复制
https://github.com/cakephp/debug_kit
https://github.com/loadsys/twitter-bootstrap-helper

这是我的composer.json:

代码语言:javascript
复制
{
"repositories": [
    {
        "type": "package",
        "package": {
            "name": "cakephp/debug_kit",
            "version": "2.0",
            "source": {
                "url": "https://github.com/cakephp/debug_kit",
                "type": "git",
                "reference": "origin/2.0"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "loadsys/twitter-bootstrap-helper",
            "version": "2.1",
            "source": {
                "url": "https://github.com/loadsys/twitter-bootstrap-helper",
                "type": "git",
                "reference": "origin/2.1"
            }
        }
    }
],
"require": {
    "loadsys/twitter-bootstrap-helper": "2.1.*",
    "cakephp/debug_kit": "2.0"
},
"config": {
    "vendor-dir": "Vendor/"
},
"autoload": {
    "psr-0": {
        "DebugKit": "/cakephp/debug_kit/",
        "TwitterBootstrap" : "/loadsys/twitter-bootstrap-helper"
    }
}
}

软件包已成功安装到供应商/cakephp/debug_kit和供应商/loadsys/twitter-bootstrap-helper

我的问题在于如何在CakePHP中加载它们。我的bootstrap.php中有以下内容:

代码语言:javascript
复制
require APP . 'Vendor/autoload.php'; 

当我在请求自动加载后尝试加载插件时:

代码语言:javascript
复制
CakePlugin::load('DebugKit');

找不到它。在我的AppController.php中加载帮助器的类似结果

代码语言:javascript
复制
public $helpers = array('TiwtterBootstrap');

我是作曲家的新手,可能会错过一些简单的东西,或者只是不知道如何正确地从供应商文件夹中加载它们。

EN

回答 2

Stack Overflow用户

发布于 2013-06-03 16:07:39

你所做的一切都是正确的,你只需要添加一个额外的部分来指示composer在哪里安装你的插件。注意额外的“installer- path”部分,它需要指向你想要安装插件的相对路径。

代码语言:javascript
复制
        {
          "minimum-stability": "dev",
          "config": {
              "vendor-dir": "vendors"
          },
          "extra": {
            "installer-paths": {
              "app/Plugin/DebugKit": ["cakephp/debug_kit"],
            }
          },
          "require" : {
            "php": ">=5.4",
            "cakephp/debug_kit": "2.2.*"
          }
        }
票数 10
EN

Stack Overflow用户

发布于 2013-06-04 09:06:31

今天早上我的评论很仓促,这是我在composer.json中添加的“额外”区块:

代码语言:javascript
复制
    "extra": {
    "installer-paths": {
        "Plugin/DebugKit": ["cakephp/debug_kit"],
        "Plugin/TwitterBootstrap": ["loadsys/twitter-bootstrap-helper"]
    }

删除我的插件为了重新开始安装,仍然没有把文件放到composer.lock文件夹中。然而,即使我让它工作,我认为系统也有可能通过composer自动加载识别Vendor文件夹中的插件,也许还可以从Cake中识别一些魔法。这样,我就可以将整个供应商文件夹放在这个项目的存储库之外,并根据需要更新我的依赖项。

我最终通过sym链接到插件文件夹中的这些文件来解决我的问题,并且我的系统可以识别这些插件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16888781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档