polifonic/symfony-robo

symfony应用的Robo任务和Robofile

0.1.10 2015-12-24 03:41 UTC

This package is not auto-updated.

Last update: 2024-09-13 15:02:54 UTC


README

symfony应用的RoboFile。

这是我们用于构建自己的symfony应用的RoboFile,现在将其提供给社区。显然,它是针对我们的做法(例如,我们使用Propel),但它很容易扩展,希望至少可以为你自己的实现提供示例或灵感。

该包还提供了一个自定义的SymfonyTask,它等同于在命令行上运行php app/console。请注意,这并不完全等同于原始Robo包提供的SymfonyCommand任务(例如,它不包括app内核,因此不识别env选项)。

该包完全独立于polifonic应用。

安装

将包添加到您的应用的composer.json文件中。根据您的需要,您可以在“require”部分或“require-dev”部分添加它。

    "require-dev": {
        ....
        "polifonic/symfony-robo": "*",
    }

使用方法

在您的应用的根目录中创建一个新的RoboFile.php文件。该类应扩展由包提供的Polifonic\Robo\RoboFile类。您可以使用原始RoboFile中定义的任务,覆盖它们或根据需要添加新任务。

<?php

require_once __DIR__.'/vendor/autoload.php';

use Polifonic\Robo\RoboFile as Tasks;

class RoboFile extends Tasks
{
}

然后,就像运行其他robo任务一样,在命令行上运行任务

vendor/bin/robo <task>

如果您已将robo安装到您的路径中,您可以输入以下内容

robo <task>

提供的任务

该包的RoboFile类提供了以下任务

assets

assets任务将运行symfony的assets:install命令,如果当前操作系统不是Windows,将使用--symlink选项。

build

build任务将执行以下任务

  • composer install
  • 清除开发和生产环境中的缓存
  • 构建Propel模型
  • 安装资产

build:all

build任务将执行以下任务

  • composer update
  • 清除开发和生产环境中的缓存
  • 构建Propel模型
  • 运行Propel迁移
  • 安装资产

git:sync-tags

git:sync-tags将本地标签与远程标签同步,删除任何在远程找不到的本地标签。

os

显示以下之一的当前操作系统

  • OSX
  • Windows
  • Linux
  • 其他

在构建任务中运行assets:install命令时使用:如果操作系统是Windows,则复制资产;否则,将它们链接。

phpunit

phpunit任务将通过以下命令运行phpunit测试

vendor/bin/phpunit -c app/

release

release任务使用git-flow创建新的发布版本,按照以下步骤进行。它假定git-flow已为此项目安装和初始化。

然后使用capifony部署新版本。它假定capifony已安装并设置了应用。

  • 计算递增的版本号(见下文)
  • 创建一个名为递增版本号的新的git-flow发布
  • 将递增的版本号写入文件
  • 提交更改
  • 完成git-flow发布;它将标记为递增的版本号
  • 将develop和master分支推送到远程仓库
  • 运行cap deploy

secret

secret生成并显示一个用于symfony应用框架配置的“秘密”字符串。

version:show

version:show 任务将显示当前版本号。这将从 Version::VERSION 类常量中读取(见下文)。

version:bump

version:bump 任务将增加当前版本号的构建部分。

版本号

处理版本号时,该软件包做出以下假设

  • /src 目录下存在一个名为 Version 的类
  • 该类定义了一个名为 VERSION 的常量
  • Version::VERSION 的值是一个 semver 兼容的版本号

如果这不适合您的场景,则可以在您的 RoboFile 中重写以下方法

  • getVersion:此方法负责返回版本号
  • writeVersion($version):此方法负责将版本写入文件。

SymfonyTask

SymfonyTask 通过 php app/console 运行任何 symfony 命令,因此将支持命令行上可用的任何 symfony 命令。它假设该软件包在 symfony 应用程序的根目录中使用。