Zend Framework教程-用Zend命令行快速创建Zend应用

  

      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 layout
    zf 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; ?>


DbAdapter 添加数据库配置信息

    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提供的命令工具,可以根据需要使用,使用命令行要确保所有的东西都是用命令行完成的,因为命令行的运行是通过记录在配置文件中完成的,如果手动加入一些功能,命令行就无法进行正确的运行了。



你可能感兴趣的:(Module,layout,application,action,Path,Zend)