Saturday, March 8, 2008

Symfony CLI(Command Line Interface)

生成结构

$ php symfony init-project

初始化一个 symfony 项目(简写:new):

$ php symfony init-app

初始化一个新的 symfony 应用(简写:app):

$ php symfony init-module

初始化一个新的 symfony 模块(简写:module):

$ php symfony init-batch [...]

初始化一个新的批处理文件(简写:batch),你必须先选择一个批处理模板用于初始化,然后执行:

$ php symfony init-controller [] [true|false]

初始化一个新的控制器(简写:controller)默认脚本名称遵循 symfony 约定:

第 16 章有进一步介绍。
生成模型

$ php symfony propel-build-model

基于 config/ 目录下的 schema 文件(YAML 或 XML),为当前模型声称 Propel 类(classes).

如下命令的连接设置基于 config/propel.ini 中的设置

$ php symfony propel-build-sql

在 data/schema.sql 文件中生成 schema.yml 中描述的 SQL 代码。

$ php symfony propel-build-db

基于连接设置生成空数据库。

$ php symfony propel-insert-sql

在数据库中执行 data/schema.sql 中的 SQL 语句

$ php symfony propel-build-all

在一个命令中执行 propel-build-model, propel-build-sql 和 propel-insert-sql 。

第 8 章有进一步介绍。
Schema 管理

$ php symfony propel-build-schema [xml]

从已有数据库建立 schema.yml 。 如果添加 xml 参数, 则建立一个 schema.xml 而不是 YAML 版本。

$ php symfony propel-convert-xml-schema

建立 YAML 版本的 XML schemas 。

$ php symfony propel-convert-yml-schema

建立 XML 版本的 YAML schemas。
数据(Data)管理

$ php symfony propel-load-data [] []

除非另行设置,从默认的 data/fixtures/ 目录加载数据。 默认环境是开发环境 dev。fixtures 目录必须与项目的 data 目录相关, 例如:fixtures (默认)后者 testdata 或者指定单一文件 fixtures/file.yml。

$ php symfony propel-build-all-load [] []

执行 propel-build-all 后执行 propel-load-data。 与 propel-load-data 配合参数使用。

$ php symfony propel-dump-data []

提取数据库库中的数据到一个 fixtures 目录的 YAML 格式的文件.
开发工具

$ php symfony clear-cache [] [template|config]

清除缓存(cached)信息(简写:cc)(第 12 章 有进一步介绍)。

$ php symfony clear-controllers

清除 web 目录中除设置为产品环境的所有控制器。 在向产品服务器部署时非常实用。

$ php symfony fix-perms

修正目录权限, 将需要设为可写的目录改为 777 。 权限设置在由 SVN 签出时会被改变。

$ php symfony freeze
$ php symfony unfreeze

将所有必要的 symfony 库文件拷贝到项目的 data/, lib/ 和 web/sf/ 目录。 项目将成为类砂箱。 例如。 准备好一个无依赖性的独立的应用,可以通过 FTP 上传至产品服务器。 对于 PEAR 安装和链接安装都适用。 unfreeze 是相反的解冻任务。

$ php symfony sync [go]

将当前项目与另一机器上的项目同步(第 16 章有进一步介绍)。
测试(Tests)

$ php symfony test-unit

启动位于 test/unit/ 目录的一个测试。 参数可以是一个单一的单元测试文件(忽略 Test.php 后缀), 一组单元测试文件,或者一个带有统配符的文件路径名。如果没有给定测试名称,所有单元测试都将运行。

$ php symfony test-unit

以并行(harness)模式启动所有测试。

$ php symfony test-functional

为给定应用启动一个功能测试。 TEST 参数可以使一个单一的功能测试文件(忽略 Test.php 后缀),一组单元测试文件,或者一个带有统配符的文件路径名。

$ php symfony test-functional

以并行(harness)模式启动一个应用的所有功能测试。

$ php symfony test-all

以并行(harness)模式启动所有单元测试和功能测试。

第 15 章有进一步介绍。
项目管理

$ php symfony disable

将用户定向到 settings.yml 中设置的不可获得(unavailable)模块(module)和行为(action)就像是在 settings.yml 文件中进行了不可获得设置。其优势在于,可以在不屏蔽整个项目的情况下为单一环境屏蔽单一应用。

$ php symfony enable

起用应用并清除缓存。

$ php symfony purge-logs

为环境和应用清除日志(log)目录中的日志文件。 logging.yml 文件中设置了 purge: on (默认设置)。

$ php symfony rotate-log

Forces a rotation of a log file if rotate is enabled for the log file in logging.yml. The rotation parameters are the period (the number of days a single log file lasts) and the history (the number of backup log files kept). Here is an example of logging.yml withrotation configutation:

prod:
rotate: on
period: 7 ## Log files are rotated every 7 days by default
history: 10 ## A maximum history of 10 log files is kepts

脚手架(Scaffolding)和生成后台管理(admin)

$ php symfony propel-generate-crud
$ php symfony propel-init-crud

基于模型(model)中的类生成一个新的 Propel CRUD 模块。 generate 版本将从frameversion copies the code from the framework to a new module, the init verson creates an empty module that inherits from the one in the framework. In this case, the generated code is visible only in the cache/ folder (the generated actions and templates inherit from the framework).

$ php symfony propel-init-admin

基于一个 model 中的类,初始化一个新的 Propel 管理模块(module)

第 14 章有进一步介绍。
插件(Plugin)管理

$ php symfony plugin-install /

安装一个新插件。使用 http://plugins.symfony-project.com 作为 channel 名,从 symfony wiki 安装一个新插件。

$ php symfony plugin-upgrade /

升级一个插件

$ php symfony plugin-upgrade-all

升级所有以前安装过的插件

$ php symfony plugin-uninstall /

卸载一个插件

Chapter 17有进一步介绍。
自动完成(Automatic completion)

symfony wiki 中有使用者提供的实现symfony 命令自动完成功能的配置文件. 签出适合你的 CLI 的一款:

* Bash 自动完成
* Zsh 自动完成

No comments: