Zend Framework提供了命令行的方式快速创建应用,如果是用ZendStudio9,可能步采用命令行的方式,当时你稀饭的话,可以用。
下载完整的库文件包,在bin目录的几个脚本就是用来创建应用的。
root@coder-671T-M:/mydev_src/zend_framework_learn/ZendFramework-1.11.11# tree -L 2
.
├── bin
│ ├── zf.bat
│ ├── zf.php
│ └── zf.sh
├── demos
│ └── Zend
├── documentation
│ ├── api
│ └── manual
├── externals
│ └── dojo
├── extras
│ ├── library
│ └── tests
├── incubator
├── INSTALL.txt
├── library
│ └── Zend
├── LICENSE.txt
├── README.txt
├── resources
│ └── languages
├── src
└── tests
├── AllTests.php
├── phpunit.xml
├── resources
├── runtests.sh
├── TestConfiguration.php.dist
├── TestHelper.php
└── Zend
20 directories, 11 files
具体给出的命令格式如下:
Zend Framework Command Line Console Tool v1.11.11
Usage:
zf [--global-opts] action-name [--action-opts] provider-name [--provider-opts] [provider parameters ...]
Note: You may use "?" in any place of the above usage string to ask for more specific help information.
Example: "zf ? version" will list all available actions for the version provider.
Providers and their actions:
Version
zf show version mode[=mini] name-included[=1]
Note: There are specialties, use zf show version.? to get specific help on them.
Config
zf create config
zf show config
zf enable config
Note: There are specialties, use zf enable config.? to get specific help on them.
zf disable config
Note: There are specialties, use zf disable config.? to get specific help on them.
Phpinfo
zf show phpinfo
Manifest
zf show manifest
Profile
zf show profile
Project
zf create project path name-of-profile file-of-profile
zf show project
Note: There are specialties, use zf show project.? to get specific help on them.
Application
zf change application.class-name-prefix class-name-prefix
Model
zf create model name module
View
zf create view controller-name action-name-or-simple-name module
Controller
zf create controller name index-action-included[=1] module
Action
zf create action name controller-name[=Index] view-included[=1] module
Module
zf create module name
Form
zf enable form module
zf create form name module
Layout
zf enable layout
zf disable layout
DbAdapter
zf configure db-adapter dsn section-name[=production]
DbTable
zf create db-table name actual-table-name module force-overwrite
Note: There are specialties, use zf create db-table.? to get specific help on them.
ProjectProvider
zf create project-provider name actions
为了运行方便可以把如下目录加入到path
/mydev_src/zend_framework_learn/ZendFramework-1.11.11/bin
设置临时的path,重启会失效的。
export PATH=$PATH:/mydev_src/zend_framework_learn/ZendFramework-1.11.11/bin
显示框架版本
root@coder-671T-M:~# zf.sh show version
Zend Framework Version: 1.11.11
Project 创建一个项目
zf create project path name-of-profile file-of-profile
zf show project
Note: There are specialties, use zf show project.? to get specific help on them.
root@coder-671T-M:/mydev_src/zend_framework_learn/www# zf.sh create project zf_demo2
Creating project at /mydev_src/zend_framework_learn/www/zf_demo2
Note: This command created a web project, for more information setting up your VHOST, please see docs/README
Testing Note: PHPUnit was not found in your include_path, therefore no testing actions will be created.
root@coder-671T-M:/mydev_src/zend_framework_learn/www# ll
总用量 28
drwxr-xr-x 6 root root 4096 2011-12-06 16:35 ./
drwxr-xr-x 9 root root 4096 2011-12-06 16:08 ../
drwxr-xr-x 4 root root 4096 2011-12-06 12:48 .metadata/
-rw-r--r-- 1 root root 17 2011-12-06 12:30 phpinfo.php
drwxr-xr-x 2 root root 4096 2011-12-06 12:48 RemoteSystemsTempFiles/
drwxr-xr-x 8 root root 4096 2011-12-06 13:56 zf_demo1/
drwxr-xr-x 7 root root 4096 2011-12-06 16:35 zf_demo2/
root@coder-671T-M:/mydev_src/zend_framework_learn/www#
创建成功,访问一下:
http://localzend.com/zf_demo2/public/
显示项目结构信息
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh show profile
ProjectDirectory
ProjectProfileFile
ApplicationDirectory
ConfigsDirectory
ApplicationConfigFile
ControllersDirectory
ControllerFile
ActionMethod
ControllerFile
ModelsDirectory
ViewsDirectory
ViewScriptsDirectory
ViewControllerScriptsDirectory
ViewScriptFile
ViewControllerScriptsDirectory
ViewScriptFile
ViewHelpersDirectory
BootstrapFile
DocsDirectory
file
LibraryDirectory
PublicDirectory
PublicIndexFile
HtaccessFile
TestsDirectory
TestPHPUnitConfigFile
TestPHPUnitBootstrapFile
TestApplicationDirectory
TestApplicationControllerDirectory
TestApplicationControllerFile
TestLibraryDirectory
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2#
显示Phpinfo
zf.sh show phpinfo
查看指定命令的帮助信息:
zf.sh ? (命令)
Config创建include_path配置文件
zf create config
zf show config
zf enable config
Note: There are specialties, use zf enable config.? to get specific help on them.
zf disable config
Note: There are specialties, use zf disable config.? to get specific help on them.
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create config
Successfully written Zend Tool config.
It is located at: /root/.zf.ini
大体内容
php.include_path = "/mydev_src/zend_framework_learn/ZendFramework-1.11.11/library:.:/usr/share/php:/usr/share/pear"
作用不言而喻。
Model 创建Model,可以指定模块,也是创建全局的
zf create model name module
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create model myModel testmod
Note: The canonical model name that is used with other providers is "MyModel"; not "myModel" as supplied
Creating a model at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/models/MyModel.php
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
/zf_demo2/application/modules/testmod/models/MyModel.php
<?php
class Testmod_Model_MyModel
{
}
Controller 创建Controller,可以指定模块,也是创建全局的
zf create controller name index-action-included[=1] module
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create controller NewsManage 1 testmod
Note: PHPUnit is required in order to generate controller test stubs.
Creating a controller at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/controllers/NewsManageController.php
Creating an index action method in controller NewsManage
Creating a view script for the index action method at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/views/scripts/news-manage/index.phtml
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2/application/modules# tree
.
└── testmod
├── controllers
│ └── NewsManageController.php
├── forms
│ └── TestForm.php
├── models
│ └── MyModel.php
└── views
├── filters
├── helpers
└── scripts
└── news-manage
└── index.phtml
9 directories, 4 files
/zf_demo2/application/modules/testmod/controllers/NewsManageController.php
<?php
class Testmod_NewsManageController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// action body
}
}
Action为指定controller创建action,默认是的controller是Index
zf create action name controller-name[=Index] view-included[=1] module
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create action add NewsManage 1 testmod
Note: PHPUnit is required in order to generate controller test stubs.
Creating an action named add inside controller at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/controllers/NewsManageController.php
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
Creating a view script for the add action method at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/views/scripts/news-manage/add.phtml
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2/application/modules# tree
.
└── testmod
├── controllers
│ └── NewsManageController.php
├── forms
│ └── TestForm.php
├── models
│ └── MyModel.php
└── views
├── filters
├── helpers
└── scripts
└── news-manage
├── add.phtml
└── index.phtml
9 directories, 5 files
<?php
class Testmod_NewsManageController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// action body
}
public function addAction()
{
// action body
}
}
View 创建视图脚本
zf create view controller-name action-name-or-simple-name module
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create action edit NewsManage testmod
Note: PHPUnit is required in order to generate controller test stubs.
Creating an action named edit inside controller at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/controllers/NewsManageController.php
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
Creating a view script for the edit action method at /mydev_src/zend_framework_learn/www/zf_demo2/application/views/scripts/news-manage/edit.phtml
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create view NewsManage edit testmod
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create view NewsManage editx testmod
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
.
└── testmod
├── controllers
│ └── NewsManageController.php
├── forms
│ └── TestForm.php
├── models
│ └── MyModel.php
└── views
├── filters
├── helpers
└── scripts
└── news-manage
├── add.phtml
├── edit.phtml
├── editx.phtml
└── index.phtml
9 directories, 7 files
Module
zf create module name
为你的项目增加一个模块
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create module testmod
Creating the following module and artifacts:
/mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/controllers
/mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/models
/mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/views
/mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/views/scripts
/mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/views/helpers
/mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/views/filters
Added a key for path module directory to the application.ini file
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
配置文件中增加了
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
Form创建Form
zf enable form module
zf create form name module
为指定模块创建Form
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create form testForm testmod
Creating a form at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/forms/TestForm.php
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
/zf_demo2/application/modules/testmod/forms/TestForm.php
<?php
class Testmod_Form_TestForm extends Zend_Form
{
public function init()
{
/* Form Elements & Other Definitions Here ... */
}
}
创建全局的Form
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create form testForm
Creating a form at /mydev_src/zend_framework_learn/www/zf_demo2/application/forms/TestForm.php
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
/zf_demo2/application/forms/TestForm.php
<?php
class Application_Form_TestForm extends Zend_Form
{
public function init()
{
/* Form Elements & Other Definitions Here ... */
}
}
Layout配置layout
zf enable layoutzf disable layout
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh enable layout
A layout entry has been added to the application config file.
A default layout has been created at /mydev_src/zend_framework_learn/www/zf_demo2/application/layouts/scripts/layout.phtml
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
/zf_demo2/application/layouts/scripts/layout.phtml
<?php echo $this->layout()->content; ?>
zf configure db-adapter dsn section-name[=production]
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh configure db-adapter "adapter=Mysqli&username=uname&password=mypass&dbname=mydb"
A db configuration for the production section has been written to the application config file.
resources.db.adapter = "Mysqli"
resources.db.params.username = "uname"
resources.db.params.password = "mypass"
resources.db.params.dbname = "mydb"
DbTable 创建一个DbTable。
zf create db-table name actual-table-name module force-overwrite
Note: There are specialties, use zf create db-table.? to get specific help on them.
root@coder-671T-M:/mydev_src/zend_framework_learn/www/zf_demo2# zf.sh create db-table TblUser tbl_user testmod
Creating a DbTable at /mydev_src/zend_framework_learn/www/zf_demo2/application/modules/testmod/models/DbTable/TblUser.php
Updating project profile '/mydev_src/zend_framework_learn/www/zf_demo2/.zfproject.xml'
es# tree
.
└── testmod
├── controllers
│ └── NewsManageController.php
├── forms
│ └── TestForm.php
├── models
│ ├── DbTable
│ │ └── TblUser.php
│ └── MyModel.php
└── views
<?php
class Testmod_Model_DbTable_TblUser extends Zend_Db_Table_Abstract
{
protected $_name = 'tbl_user';
}
以上是zendframework提供的命令工具,可以根据需要使用,使用命令行要确保所有的东西都是用命令行完成的,因为命令行的运行是通过记录在配置文件中完成的,如果手动加入一些功能,命令行就无法进行正确的运行了。