如何在 Symfony2 中使用 php 控制台
Posted
技术标签:
【中文标题】如何在 Symfony2 中使用 php 控制台【英文标题】:How to use php console in Symfony2 【发布时间】:2011-02-26 03:30:02 【问题描述】:我找到了控制台并像这样运行它:
root@valugi-laptop:/var/www/sandbox/hello# php console
Symfony version 2.0.0-DEV - hello
Usage:
Symfony [options] command [arguments]
Options:
--help -h Display this help message.
--quiet -q Do not output any message.
--verbose -v Increase verbosity of messages.
--version -V Display this program version.
--color -c Force ANSI color output.
--no-interaction -n Do not ask any interactive question.
--shell -s Launch the shell.
Available commands:
help Displays help for a command (?)
list Lists commands
assets
:install
bundle
:pharize
container
:graphviz
doctrine
:generate-proxies
init
:application
:bundle
router
:debug Displays current routes for an application
:dump-apache
但我无法运行任何这些命令。我正在尝试这样:
php 控制台 Symfony -h
但我明白了
[InvalidArgumentException]
Command "Symfony" is not defined.
有什么建议吗?
【问题讨论】:
【参考方案1】:控制台是这样使用的:$ php app/console [command name]
【讨论】:
【参考方案2】:来自应用根目录:./app/console --shell
【讨论】:
【参考方案3】:给自己找个答案。
root@valugi-laptop:/var/www/sandbox/hello# chmod 777 /var/www/sandbox/src/Bundle
root@valugi-laptop:/var/www/sandbox/hello# php console init:bundle "Bundle\\ValugiBundle"
【讨论】:
该语法看起来不正确。您应该从根目录执行命令,而不是在 app 文件夹内。 这是大约一年前... symfony 真的是测试版【参考方案4】:使用以下命令创建一个新的 symfony2 包:
php app/console init:bundle Acme\\DemoBundle src
这将在 src 中创建一个具有此目录结构的新包:
src/Acme/DemoBundle/
AcmeDemoBundle.php
Controller/
DefaultController.php
Resources/
config/
routing.yml
views/
Default/
index.html.twig
命名空间为Acme\DemoBundle
。
【讨论】:
【参考方案5】:我整理了a bash script 来帮助解决这个问题,让 CLI 工具可以从项目中的任何地方轻松访问。下载它,使其可执行并将其放入您的 PATH(例如 /usr/local/bin/)。
那么您无需位于项目的根目录中即可访问 CLI 工具。开火吧sf <command>
。它适用于 Symfony 1.3/1.4 和 Symfony2。
【讨论】:
【参考方案6】:我试图否决你自己的答案,但我没有足够的代表!
-
Sergi 和 ok 准确地回答了你,但我会扩展以防万一读到这篇文章的人像你一样感到困惑。
您认为您需要使用“php 控制台 Symfony”,因为您自己不会让文件夹名称变得容易。
我喜欢在我的主文件夹中工作。每当我登录时,我总是从那里开始,所以我在家里创建了一个文件夹,例如:~/web/sandbox.sf2
那么您可以使用指向 /var/www 的符号链接,例如:sudo ln -s ~/web/sandbox.sf2/home/myusername/web/sandbox.sf2
所以当你处理你的文件时,你会知道你已经在一个 symfony2 项目中。 (我也觉得一开始这样使用它很奇怪,但我已经习惯了,并使用了 Tobias 相同的答案,一个 bin 脚本将 app/console 包装为 sf2 init:bundle 和 sf list 例如)
你显然也有用户权限问题(http://google.com/search?q=linux+permissions,第二个结果看起来不错)。
确保您作为用户/组可以编辑您的文件和文件夹。 php app/console 以您使用的用户(在本例中为 root)运行。 还要确保 apache 用户/组可以读取您的文件。
-
请不要使用 root 帐户来 chmod 777 -R 当某些东西不起作用时。测试简单的所有权权限,如果您将 Web 服务器暴露给万维网,它很容易且是必要的概念。
【讨论】:
一年半前大家都在哪里?这篇文章是关于一个非常非常 beta 的 Symfony2。 因为它是 sf2 的测试版,你可以随时删除这个问题,因为没有人会遇到这个问题。以上是关于如何在 Symfony2 中使用 php 控制台的主要内容,如果未能解决你的问题,请参考以下文章