hinkPHP 5.0的安裝
方式一:官網下載
官網地址:http://thinkphp.cn
方式二:git安裝
應用項目:https://github.com/top-think/think
核心框架:https://github.com/top-think/framework
首先Clone項目倉庫:
git clone https://github.com/top-think/think project_name
然后再切換到項目文件夾(/project_name),安裝核心框架
git clone https://github.com/top-think/framework thinkphp
后續需要更新框架時,只要切換到thinkphp文件夾并執行
git pull https://github.com/top-think/framework
運行ThinkPHP項目
在本地環境運行ThinkPHP項目有兩種方式:
在計算機上搭建Apache服務器,將項目文件夾放到Apache中運行
在安裝php環境的機器上執行路由命令,自建服務器環境
在此使用第一種方法,第二中方法占不討論。
在瀏覽器上訪問入口文件,訪問項目:
http://localhost/project_name/public/index.php
配置數據庫
項目文件夾下有很多子文件夾,其中application文件夾存放的就是我們的業務代碼,所以在入門的時候幾乎只涉及到這個文件夾的內容。https://github.com/top-think/framework
在開始制作項目前我們先配置數據庫,用編輯器打開 database.php,修改數據庫名稱、用戶名和密碼就可以了。
'hostname'=> 'localhost', 'database'=> 'test', 'username'=> 'root', 'password'=> '123456',
了解目錄的結構
application文件夾的目錄結構是這樣的
+ index //Index模塊 + controller //控制器 + model //模型 + view //視圖 - .htaccess - command.php //命令行工具配置 - common.php //應用公共函數 - config.php //應用公共配置 - database.php //數據庫配置 - route.php //路由配置 - tags.php //應用行為擴展定義
Index是系統為我們已經創建好的默認模塊,我們還能為應用創建不同的模塊,比如說后臺Admin模塊。
從模塊文件夾的結構我們明顯地看出一個MVC的架構,而接下來我們要做的就是創建第一個控制器,模型和視圖。
創建第一個控制器
打開controller文件夾我們可以發現系統已經為我們創建了Index控制器,這也是我們為什么在項目創建完成后就可以通過瀏覽器訪問的原因,在這里,我們創建一個新的控制器——Test控制器,我們在controller文件夾新建一個test.php文件。
test.php 代碼如下
namespace app\index\controller;class Test { public function index(){ return 'Hello World!'; } }
namespace為這段代碼劃定了命名空間,避免了模塊間和類庫間的命名沖突。
index()是Test控制器的一個方法,當我們在通過URL訪問時沒有指定訪問控制器的哪一個方法,就會默認訪問index方法。
當然也可以為控制器添加初始化方法 _initialize(),它會在控制器調用方法時前被調用。
控制器一般不需要任何輸出,直接return數據就可以了。
現在我們訪問
http://localhost/project_name/public/index.php/Index/Test/index
可以發現頁面上輸出了 Hello World!
這里你應該就發現了URL的規律了,在index.php后面加上/模塊名/控制器名/方法名就可以調用相應的方法了。
創建第一個視圖
在服務器上展示一個網頁
在傳統的PHP中,我們很容易就習慣把html和標簽和php語句混到一起。而在MVC結構中,我們要把展現在瀏覽器上的部分和業務邏輯隔離開來,使得項目的可維護性更高。
ThinkPHP 5.0沒有為我們建立視圖文件夾,我們在index模塊文件夾下建立一個view文件夾,然后在view文件夾下建立一個與控制器同名的Test文件夾,當控制器Test需要調用模板時,會在/index/view/Test中尋找。
這里我們在Test下創建一個index.html文件:
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <h1>Hello World!</h1></body></html>
然后我們修改控制器的代碼,引入think\View命名空間,并創建一個View的實例。
namespace app\index\controller;use think\View;class Test { public function index(){ $view=new View(); return $view->fetch('index'); } }
View類中的fetch方法會找到此模塊中view文件夾下同名的Test文件夾,并根據參數找到index.html文件,將它渲染出來,這時訪問
http://localhost/project_name/public/index.php/Index/Test/index
可以看到網頁已經顯示出來了。
當然,如果方法和模板同名的話,就可以省略掉這個參數了,所以在這里
return $view->fetch('index');
可以寫成
return $view->fetch();
將變量輸出到模板
我們需要把控制器中處理后的數據輸出到模板上,這時只要把變量綁定到$view對象成為它的屬性,就可以在模板中用花括號中將它輸出了。
/index/controller/Test.php
<?phpnamespace app\index\controller;use think\View;class Test { public function index(){ $view=new View(); $view->name='I love ThinkPHP'; return $view->fetch(); } }
/index/view/Test/index.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <h1>{$name}</h1></body></html>
刷新頁面,即可看到效果。
在視圖中,可以用點運算符(.)來訪問數組的元素。
/index/controller/Test.php
<?phpnamespace app\index\controller;use think\View;class Test { public function index(){ $view=new View(); $view->person=array("name"=>"Tom","age"=>"23"); return $view->fetch(); } }
/index/view/Test/index.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <h1>{$person.name}</h1> <h1>{$person.age}</h1></body></html>
當然也可以使用
{$person["name"]}
和
{$person["age"]}
訪問數據庫
在之前,我們已經配置好了數據庫,假定我們現在有一張student表(id為主鍵)
| id | name | age |
| -- | ----- | --- |
| 1 | Tom | 23 |
| 2 | Alice | 22 |
現在,在index文件夾下創建model文件夾,創建Student.php文件
<?php namespace app\index\Model; use think\Model;class Student extends Model{ protected $table="student"; }
這里注意Student模型類要繼承think\Model類,我們可以事先通過
use think\Model;
來引入這個類。在Student類中,我們需要定義 $table 屬性告訴 ThinkPHP 這個模型匹配的是 student 表。在這里你也許會想到要為 Student 類定義 id, name, age 這些屬性,不過在這里并不需要,等你調用這個模型的時候,ThinkPHP 會根據數據表的字段為 Student 的實例來添加這些屬性。接下來,我們只要在控制器中引入Student類,就可以訪問數據了。
<?phpnamespace app\index\controller;use app\index\model\Student;use think\View;class Test { public function index(){ $view=new View(); $student=Student::get(1); $view->student=$student; return $view->fetch(); } }
首先別忘了引入Student類
use app\index\model\Student;
在 index 方法中,我們通過 Student::get(1) 靜態獲取了 Student表中主鍵為1的數據,并將它綁定在視圖上,我們嘗試在視圖輸出 student 的數據。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <h1>{$student.name}</h1> <h1>{$student.age}</h1></body></html>
大功告成,除了這種靜態調用的方式,還可以動態建立Student實例,這樣就可以進行更加豐富的查詢操作,這里就不詳細撰述了,有興趣的同學可以去翻看ThinkPHP 5.0文檔中關于模型和數據庫的部分。
成為一名ThinkPHP開發者
在這里,你已經創建了一個ThinkPHP應用,建立了第一個控制器,通過關聯模型訪問了數據庫的數據,并將它們輸出到HTML模板上。你已經完成了開發ThinkPHP的第一步,當然,這些知識對于你而言還是遠遠不夠的,接下來你需要通過更多的資料來熟悉這個框架,并通過不斷地翻看文檔,來了解ThinkPHP的各種方法和強大特性,最后附上ThinkPHP 5.0的文檔地址,加油啦。
http://www.kancloud.cn/manual/thinkphp5
BeyongCms系統基于ThinkPHP5.1框架的輕量級內容管理系統,適用于企業Cms, 個人站長等,針對移動App、小程序優化;提供完善簡潔的項目文檔,方便開發人員進行二次開發。 支持模塊式開發,方便平臺擴展及第三方進行二次開發。專注于個人站長、中小企業客戶,提供基礎平臺功能及豐富的應用擴展, 支持PC和移動場景,滿足企業建站系統、后臺管理框架、App后臺開發、微信小程序開發、小程序開發框架、小程序API、小程序開發等實際二次開發場景。 其主要特性包括:
ThinkPHP5.1的運行環境要求PHP5.6以上,建議使用PHP7.0及以上。
##軟件架構
系統支持Linux/Window/Mac OS三大平臺; 軟件架構采用nginx/apache + PHP + Mysql(MariaDB) [+redis] 的經典WEB架構,因為簡單易于理解,且方便部署,門檻低; 理論上可支持SQL server, Oracle, Postgre SQL, MongoDB等,但未經充分測試。
準備好您的域名,并設置好指向; 安裝apache/nginx, php及Mysql; 創建數據庫,并分配數據庫帳號密碼(不建議用root),當前BeyongCms不支持幫助用戶創建數據庫;
刪除data/install.lock文件,如果存在的話;
修改config/queue.config文件 'default'=> 'cms:queue', 改為 'default'=> 'cms:queue:your_project', 避免如果你安裝多份的BeyongCms導致的消息沖突;
Window下
start_queue.bat start_timer.bat
Linux下
sh start_queue.sh sh start_timer.bat
系統的目錄結構如下:
thinkphp5的模板使用中,可以將需要引入的css等效果文件直接放在/public/static/下的對應目錄中,在模板文件使用時可直接,
<link href="/static/admin/css/style.min.css?v=4.1.0" rel="stylesheet">,
或者是
{load file="/static/admin/css/bootstrap.css"}等方式引入,但是如果當這些文件所在的目錄發送改變時,在代碼中將有很大地方將要改動。
這里可以直接在應用配置文件中(/application/admin)下的config.php文件中添加
//模板引入js,css,img路徑常量設置
'view_replace_str'=> [
'__CSS__'=>'/static/admin/css',
'__JS__'=>'/static/admin/js',
'__IMG__'=>'/static/admin/img',
'__FONT__'=>'/static/admin/img',
]`
不建議在項目框架配置文件中修改(/application),這樣可以使得不同應用(admin,home)等需要加載的的js,css常量的包含模塊路徑。
更多ThinkPHP相關技術文章,請訪問ThinkPHP使用教程欄目進行學習!
以上就是thinkphp如何配置css路徑的詳細內容,更多請關注其它相關文章!
更多技巧請《轉發 + 關注》哦!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。