【问题标题】:Can I use composer to deploy my Github Repositories into my projects and change some lines of code我可以使用 composer 将我的 Github 存储库部署到我的项目中并更改一些代码行吗
【发布时间】:2015-03-11 13:13:53
【问题描述】:

我对作曲家有点缺乏经验,我开始越来越多地使用 Github。我是一名 php 开发人员,我是一个应用程序,用作我向客户开发的网站的 CMS/Backoffice。

我正在使用 HMVC 框架,我想知道是否可以使用 composer 在特定文件夹中部署模块(存储库),并再次使用 composer 更改一些代码行。

例如,我有这样的结构:

- app
-- modules
--- users
--- auth
-- index.php
-- configs.php
- public
-- assets

在本例中,users 和 auth 是一个模块。想象一下,我在 rafaelmsantos/posts 中有这个存储库,并希望将它部署在 modules 文件夹中。我猜那部分很简单,还是很困难?

第二部分如下:想象在posts 存储库中我有一个这样的类文件:

<?php 
    // $this->route('posts', 'postsController->action');

    class PostsController extends appController{

        function action(){
            somestuff();
        }

    }

当我部署模块时,我希望作曲家读取此文件并检测类声明上方的注释并将其插入与modules 文件夹处于同一级别的config.php。

这也可能吗?

让我知道一些作曲家或其他东西的好教程。 提前谢谢。

【问题讨论】:

  • 不幸的是,composer 被指定用于别的东西:它是一个包管理器,而不是一个部署工具。如果您正在寻找部署您的模块,您可能需要查看 Bamboo,或搜索其他持续集成工具。您可能还对使用 Apache Ant stackoverflow.com/questions/4226871/… 部署 PHP 应用程序感兴趣
  • 谢谢@despina,我会看看你提到的那些人。

标签: php github composer-php


【解决方案1】:

Composer 有 post-install-cmd 和 post-update-cmd 事件,必须在 composer.json 文件的 scripts 部分中声明。 例如:

{ “脚本”:{ "post-update-cmd": "MyVendor\MyClass::postUpdate", } } 其中 'postUpdate' 是一个静态方法,可以根据需要添加路由。

Full info about scripts in composer

【讨论】:

  • 有了这个,我可以将post-update-cmd 发送到包含添加路由魔法的单个 .php 文件吗? (非英语母语:s)
  • "在 Composer 的术语中,脚本可以是 PHP 回调(定义为静态方法)或任何命令行可执行命令" (getcomposer.org/doc/articles/scripts.md#what-is-a-script-) 所以,你可以像这样声明脚本:"post-update-cmd": "php /dir/to/file/script.php"
  • 太好了,这正是我想要的。非常感谢你@Animir。我会在 8 小时内给你我的奖励。
猜你喜欢
  • 1970-01-01
  • 2022-01-08
  • 2019-03-19
  • 2022-01-17
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 2017-09-02
  • 1970-01-01
相关资源
最近更新 更多