已經下載了wampserver,以後有時間試下在本地運行ThinkPHP。
在app/lib/Action/文件夾下可以為每一個模塊定義控制器類,一個模塊可以包含多個操作方法,當有請求的時候,會從URL參數中解析當前請求的模塊和操作。比如定義的默認控制器類IndexAciton.class.php:
<?php class IndexAction extends Action{ ptotect function _initialize(){ header("Content-Type:text/html;charset=utf-8"); } public function index(){ $this->display(); } public function imit(){ echo "<h2>Sae服務模擬器功能測試(以下服務在本地也可以運行):</h2>"; } }
訪問http://localhost/,系統會訪問默認的模塊(Index)的默認操作(index)。相對的輸入http://localhost/Index/imit,系統就會訪問默認的模塊(Index)的操作方法(imit)。這種URL模式是PATHINFO模式,ThinkPHP的默認格式,還可以在ThinkPHP/Conf/convention.php裡設置其他格式,如普通模式、REWRITE模式和兼容模式。
只是筆記,為什麼不能設置為僅自己可見呢,我寫的亂七八糟都不好意思給人看啊。
URL請求的REWRITE模式,是在PATHINFO模式的基礎上添加重寫規則的支持,Apache的話,是在入口文件同級處添加.htaccess文件,內容是:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
只有這樣是不行的,還需要開啟Apache的rewrite功能。在httpd.conf配置文件中找到LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#,找到AllowOverride None改為AllowOverride All。如此才有效。