YII Framework框架教程之使用YIIC快速创建YII应用详解
本文实例讲述了YIIFramework框架使用YIIC快速创建YII应用的方法。分享给大家供大家参考,具体如下:
yii提供了强大的命令行工具来快速的创建相关组件和应用。</span>
cd进入yii/framework框架的根目录。
执行
#phpyiic Yiicommandrunner(basedonYiiv1.1.8) Usage:yiic<command-name>[parameters...] Thefollowingcommandsareavailable: -message -migrate -shell -webapp Toseeindividualcommandhelp,usethefollowing: yiichelp<command-name>
可以看到
yiic的基本命令参数规则
yiic<command-name>[parameters...]
command-name对应的有
-message
-migrate
-shell
-webapp
如果要查看具体的命令的功能可以用
yiichelp<command-name>
例如:
phpyiicshell
1.phpyiicwebapp
执行phpyiichelpwebapp
/* USAGE yiicwebapp<app-path> DESCRIPTION ThiscommandgeneratesanYiiWebApplicationatthespecifiedlocation. PARAMETERS *app-path:required,thedirectorywherethenewapplicationwillbecreated. Ifthedirectorydoesnotexist,itwillbecreated.Aftertheapplication iscreated,pleasemakesurethedirectorycanbeaccessedbyWebusers. */
在指定的位置创建一个基于yii的完整结构的webapp。app-path是webapp的存放目录。如果目录不存在会被创建。
例如:
/yii/framework#phpyiicwebapp../../testwebap CreateaWebapplicationunder'/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap'?[Yes|No]Yes mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap generateindex-test.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/themes mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/themes/classic mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/themes/classic/views mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/themes/classic/views/layouts generatethemes/classic/views/.htaccess mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/themes/classic/views/site mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/themes/classic/views/system mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/css generatecss/ie.css generatecss/bg.gif generatecss/screen.css generatecss/form.css generatecss/print.css generatecss/main.css generateindex.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/assets mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/models generateprotected/models/LoginForm.php generateprotected/models/ContactForm.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/components generateprotected/components/UserIdentity.php generateprotected/components/Controller.php generateprotected/yiic.bat mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/controllers generateprotected/controllers/SiteController.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/migrations generateprotected/yiic mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/data generateprotected/data/testdrive.db generateprotected/data/schema.mysql.sql generateprotected/data/schema.sqlite.sql mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/config generateprotected/config/test.php generateprotected/config/console.php generateprotected/config/main.php generateprotected/.htaccess mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/layouts generateprotected/views/layouts/column1.php generateprotected/views/layouts/column2.php generateprotected/views/layouts/main.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/site generateprotected/views/site/contact.php generateprotected/views/site/login.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/site/pages generateprotected/views/site/pages/about.php generateprotected/views/site/index.php generateprotected/views/site/error.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/messages mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests generateprotected/tests/bootstrap.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests/fixtures generateprotected/tests/phpunit.xml mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests/report mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests/unit mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests/functional generateprotected/tests/functional/SiteTest.php generateprotected/tests/WebTestCase.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/runtime generateprotected/yiic.php mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/extensions mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/commands mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/commands/shell mkdir/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/images
Yourapplicationhasbeencreatedsuccessfullyunder/yii_dev/testwebap.
生成的目录结构如下
testwebap
│ ├──assets
│ ├──css
│ ├──images
│ ├──index.php
│ ├──index-test.php
│ ├──protected
│ └──themes
详细目录结构如下
├──assets
├──css
│ ├──bg.gif
│ ├──form.css
│ ├──ie.css
│ ├──main.css
│ ├──print.css
│ └──screen.css
├──images
├──index.php
├──index-test.php
├──protected
│ ├──commands
│ │ └──shell
│ ├──components
│ │ ├──Controller.php
│ │ └──UserIdentity.php
│ ├──config
│ │ ├──console.php
│ │ ├──main.php
│ │ └──test.php
│ ├──controllers
│ │ └──SiteController.php
│ ├──data
│ │ ├──schema.mysql.sql
│ │ ├──schema.sqlite.sql
│ │ └──testdrive.db
│ ├──extensions
│ ├──messages
│ ├──migrations
│ ├──models
│ │ ├──ContactForm.php
│ │ └──LoginForm.php
│ ├──runtime
│ ├──tests
│ │ ├──bootstrap.php
│ │ ├──fixtures
│ │ ├──functional
│ │ │ └──SiteTest.php
│ │ ├──phpunit.xml
│ │ ├──report
│ │ ├──unit
│ │ └──WebTestCase.php
│ ├──views
│ │ ├──layouts
│ │ │ ├──column1.php
│ │ │ ├──column2.php
│ │ │ └──main.php
│ │ └──site
│ │ ├──contact.php
│ │ ├──error.php
│ │ ├──index.php
│ │ ├──login.php
│ │ └──pages
│ │ └──about.php
│ ├──yiic
│ ├──yiic.bat
│ └──yiic.php
└──themes
└──classic
└──views
├──layouts
├──site
└──system
通过浏览器查看一下
http://www.localyii.com/testwebap/
具体功能后面讲。这里直接讲命令的使用。
2.phpyiicmessag
phpyiichelpmessage打印message命令的相关用法
/* USAGE yiicmessage<config-file> DESCRIPTION Thiscommandsearchesformessagestobetranslatedinthespecified sourcefilesandcompilesthemintoPHParraysasmessagesource. PARAMETERS *config-file:required,thepathoftheconfigurationfile.Youcanfind anexampleinframework/messages/config.php. ThefilecanbeplacedanywhereandmustbeavalidPHPscriptwhich returnsanarrayofname-valuepairs.Eachname-valuepairrepresents aconfigurationoption. Thefollowingoptionsareavailable: -sourcePath:string,rootdirectoryofallsourcefiles. -messagePath:string,rootdirectorycontainingmessagetranslations. -languages:array,listoflanguagecodesthattheextractedmessages shouldbetranslatedto.Forexample,array('zh_cn','en_au'). -fileTypes:array,alistoffileextensions(e.g.'php','xml'). Onlythefileswhoseextensionnamecanbefoundinthislist willbeprocessed.Ifempty,allfileswillbeprocessed. -exclude:array,alistofdirectoryandfileexclusions.Each exclusioncanbeeitheranameorapath.Ifafileordirectoryname orpathmatchestheexclusion,itwillnotbecopied.Forexample, anexclusionof'.svn'willexcludeallfilesanddirectorieswhose nameis'.svn'.Andanexclusionof'/a/b'willexcludefileor directory'sourcePath/a/b'. -translator:thenameofthefunctionfortranslatingmessages. Defaultsto'Yii::t'.Thisisusedasamarktofindmessagestobe translated. -overwrite:ifmessagefilemustbeoverwrittenwiththemergedmessages. */
主要用于webapp的国际化。
例如将上面生产的testwebap的
http://www.localyii.com/testwebap/index.php?r=site/login
登录页面的Username和Password 翻译成中文
上面说需要配置文件。yii为我们提供了配置文件的模板。
framework/messages/config.php
复制framework\messages\config.php文件到protected\messages\下
具体内容修改如下:
dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'messagePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'messages', 'languages'=>array('zh_cn'), 'fileTypes'=>array('php'), 'overwrite'=>true, 'exclude'=>array( '.svn', 'yiilite.php', 'yiit.php', '/i18n/data', '/messages', '/vendors', '/web/js', ), );
/www/yii_dev/testwebap/protected/views/site/login.php
修改如下
labelEx($model,Yii::t('login_message','username'));?> textField($model,'username');?> error($model,'username');?> labelEx($model,Yii::t('login_message','password'));?> passwordField($model,'password');?> error($model,'password');?>
执行如下命令
testwebap/protected/messages /www/yii_dev/yii/framework#phpyiicmessage"../../testwebap/protected/messages/config.php" Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/components/Controller.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/components/UserIdentity.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/config/console.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/config/main.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/config/test.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/controllers/SiteController.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/models/ContactForm.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/models/LoginForm.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests/WebTestCase.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests/bootstrap.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/tests/functional/SiteTest.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/layouts/column1.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/layouts/column2.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/layouts/main.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/site/contact.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/site/error.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/site/index.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/site/login.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/views/site/pages/about.php... Extractingmessagesfrom/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/yiic.php... Savingmessagesto/home/coder/adata/liuyuqiang/wamp/www/yii_dev/testwebap/protected/messages/../messages/zh_cn/login_message.php...saved.
目录下生成如下文件
/www/yii_dev/testwebap/protected/messages/zh_cn/login_message.php
returnarray( 'password'=>'', 'username'=>'', );
改为
returnarray( 'password'=>'密码', 'username'=>'用户名', );
修改
如下配置文件
/www/yii_dev/testwebap/protected/config/main.php
添加如下
//application-levelparametersthatcanbeaccessed //usingYii::app()->params['paramName'] 'params'=>array( //thisisusedincontactpage 'adminEmail'=>'webmaster@example.com', ), 'language'=>'zh_cn', 'sourceLanguage'=>'en_us', );
访问一一下
http://www.localyii.com/testwebap/index.php?r=site/login
可以看到翻译成中文了。
可以有乱码的问题,注意编码问题。文件,浏览器要设置统一
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。