作者aaroms (高雄人看高熊球队)
看板PHP
标题[心得] Yii 实作分享 01 基本设定
时间Tue Mar 22 22:30:01 2011
上周简单分享了YiiFramework
这次就来建置一个Yii Application
*以Windows系统为主
首先Download YiiFramework
http://www.yiiframework.com/download/
(或SVN checkout:
http://yii.googlecode.com/svn/trunk/)
将yii置於网站根目录(我使用wampserver因此位於C:\wamp\www)
为了方便使用yiic,我将C:\wamp\www\yii\framework加入Windows的环境变数PATH里
打开cmd切换至根目录
使用yiic webapp指令键入yiic webapp mysite按y
就可以看到yiic已经帮我们自动生成一个website了
浏览器键入localhost/mysite可以看到目前的网站雏形
稍微解说一下yii application的资料夹结构:
index.php
/css
/images
/js
/protected
/components
/config
/controller
/extensions
/models
/views
...
css,images,js这些资料夹顾名思义都是放置网页元素的资料夹
yii的URL Routing机制urlManager并不会对这些资料夹做任何Url Rewrite的动作
protected资料夹里面则是整个网站的核心
包含了Model,View,Controller的标准MVC架构
components资料夹则放置一些我们自行继承改写自Yii内建元件的Class
网站预设会将其import进我们的Application
预设已经包含了Controller.php(所有Controller的父类别)与UserIdentity.php(
使用者认证登入类别)两个档案,待会我们便可以依我们需要的动作对其做一些修改。
config资料夹则存放了整个网站应用的设定档,这边就开始说明一下
打开config资料夹内的main.php(主要设定档)
可以看到yiic已经帮我们产生了一些基本设定
那我们可以先稍微修改一下包括网站名称
'name'=>'网站名称',
再来我们在下方添加一个设定
'language'=>'zh_tw',
这样子内建的一些view就会显示为中文
接下来我们将
'db'=>array(
'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),
这部分删除并将
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=testdrive',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
这部分的注解取消并且连接自我们自己的mysql资料库
然後开启Gii的功能
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'自订密码',
),
取消注解上面这一段
并且在浏览器输入localhost/mysite/index.php?r=gii 键入密码
就可以看到一个网页介面的产生器
包含了Controller,Model,CRUD Scaffold等等都可以在这里产生
或者我们也可以使用terminal介面的yii shell
打开cmd切换到网站目录 在网站目录下键入protected/yiic shell
我们就可使用model,controller,crud等指令来自动产生
接着各位一定觉得这样子的网址有点丑陋
那我们就可以开启UrlManager的一些功能让网址变得好看一点
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
将main.php中的这一段取消注解
接着网站就会改用localhost/mysite/index.php/{controller}/{action}的方式
接着我们将index.php隐藏起来让网址更简洁
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
然後在网站目录下加入一个.htaccess档
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
网址就会变得简洁了
基本的设定到这边为止,较为进阶的设定部份之後根据实例再做解说
接着我将修改预设的UserIdentity 实作一个连接资料库的会员系统
(待续)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.43.39.8
1F:推 bradely0309:期待原po的教学... 11/17 14:01
2F:推 yienge:推热心分享 01/21 19:11