useallfive/doctrine-web-console

Doctrine Web Console 服务提供者

v0.1.1 2014-01-13 22:29 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:59:51 UTC


README

SensioLabsInsight

Doctrine Web Console 允许通过网页浏览器执行 doctrine 控制台命令。这在需要在不允许 shell 访问的环境中执行命令时特别有用(例如 Google App Engine)。

安装

通过 composer

php composer.phar require useallfive/doctrine-web-console dev-master

将控制器提供者挂载到 /console 路径。

<?php
$app = new Silex\Application();
// ...
$app->mount(
        '/console',
        new \UseAllFive\DoctrineWebConsole\ConsoleControllerProvider()
    )
;
$app->run();

一切就绪!访问您网站的 /console URL 即可使用。

指定命令路径

如果没有指定命令路径,则将在控制台控制器当前工作目录(您的项目网页目录)中执行命令。虽然这对于大多数命令来说是可以的,但对于需要路径的命令来说并不理想。您可以在 ConsoleControllerProvider 构造函数的第一个参数中指定路径。

<?php
$app = new Silex\Application();
// ...
$app->mount(
        '/console',
        new \UseAllFive\DoctrineWebConsole\ConsoleControllerProvider(__DIR__)
    )
;
$app->run();

添加命令

将您自己的 Doctrine 命令添加到网页控制台非常简单。我们将以 Doctrine DataFixtures Command 为例。

ConsoleControllerProvider 构造函数的第二个参数接受一个 Symfony\Component\Console\Command\Command 实例数组,然后将其传递给 Doctrine 的 ConsoleRunner

<?php
$app = new Silex\Application();
// ...
$app->mount(
        '/console',
        new \UseAllFive\DoctrineWebConsole\ConsoleControllerProvider(
            __DIR__,
            array(
                new \UseAllFive\Command\LoadDataFixturesDoctrineCommand(),
            )
        )
    )
;
$app->run();