讓我們透過範例來學習Phalcon
- 本系列目錄
- 前言
- 一、專案架構
- 二、入口檔
- 三、設定Nginx
- 四、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》跳轉
- 五、資料庫之增、刪、改、查
- 六、程式碼最佳化
- 總結
#本系列目錄
一、Phalcon在Windows上安裝《Phalcon入坑指南系列一》
#########上一期文章###是介紹了Phalcon的安裝,並且使用Phalcon開發工具進行創建了專案、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》、模型。也就做了幾個簡單的操作。 ######
從上圖可以看出這個目錄結構跟TP框架極為相似,對應的目錄就不一一解釋了,這其中的migrations這個目錄跟大家說一下。
這個目錄就跟laravel的資料庫遷移一樣,具體怎麼使用就不細講了哈!
框架結構也不是固定的,跟ThinkPHP也一樣可以註冊命名空間來修改目錄結構。
在Phalcon框架中,咔咔最近負責的專案也是使用的多模組進行開發的。但是目錄結構也跟使用Phalcon開發工具產生的目錄是不一樣的。
二、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》
#每個框架必不可少的文件,index.php這個似乎是所有開發者預設的。
關於這裡邊加載的是什麼就不去細細的剖析源碼了,沒那個必要,想看源碼解析的可以去搜尋ThinkPHP框架源碼解析。
#
大體執行就是先進行依賴注入,使用/config/services.php
引入一些檔案其中你要著重知道的是在這裡進行了資料庫的連線。
這個檔案/config/router.php
看名字就知道是什麼,路由唄!怎麼設定路由,後邊再說。
最後一行程式碼就是include APP_PATH . '/config/loader.php';
註冊從設定資訊取得的目錄。
#
在第一期文章中沒有對專案進行配置,接下來進行簡單的配置一下。
Phalcon提供了三種方式的配置,咱們就先用最簡單的第一種即可。
server {
listen 80;
server_name www.kakaweb.com;
root "D:/phpstudy_pro/WWW/phalcon/public";
index index.php index.html error/index.html;
location / {
try_files $uri $uri/ /index.php?_url=$uri&$args;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}}
以上是喀喀爾的配置,如果你也使用的是PhpStudy,那麼就可以直接複製過去使用。
四、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》跳轉
#在第一期文章中,使用phalcon開發工具建立了Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》、模型,如果你還沒創建出來專案就需要去看第一期文章哈!
#可以看到在indexPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》中,也建立了另一個方法kaka。
主流的框架都配置的是indexPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》為預設存取路徑,這個kaka怎麼存取跟其它框架也是一樣的。
訪問連結就是http://www.kakaweb.com/index/kaka
即可。
也就是網域 Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》 方法名,這裡的方法名稱要注意的是不需要帶著Action。
演練一下官方給的Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》。
這個連結會直接跳到SignupPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》,接下來使用開發者工具來產生這個Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》。
接著點擊剛剛那個按鈕,就會跳到SignupPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》了。
關於Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》就先說到這裡。
#可以看到在模型檔案中提前定義好了兩個方法,不管是啥,先來試試看。
在Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》直接寫上如下程式碼
##由此可見
-
- #find方法是取得全部資料
-
- ## findFirst只拿第一個資料
find(15)查詢id為15的資料
find(“type = 'mechanical'”); 條件搜尋
#######插入資料######
public function holdAction ()
{
$user = new User();
$phql = "INSERT INTO User (name, age, sex) VALUES (:name:, :age:, :sex:)";
$status = $user->modelsManager->executeQuery($phql, array(
'name' => "咔咔1",
'age' => 24,
'sex' => 1
));
}
这里需要注意一下这个SQL语句$phql = "INSERT INTO User (name, age, sex) VALUES (:name:, :age:, :sex:)";
public function modifyAction ()
{
$user = new User();
$phql = "UPDATE User SET name = :name:, age = :age:, sex = :sex: WHERE id = :id:";
$status = $user->modelsManager->executeQuery($phql, array(
'id' => 20,
'name' => "咔咔2",
'age' => 25,
'sex' => 2
));
}
Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》
public function deleteAction ()
{
$user = new User();
$phql = "DELETE FROM User WHERE id = :id:";
$status = $user->modelsManager->executeQuery($phql, array(
'id' => 20
));
}
这时你会发现,在检索数据的时候用的框架自带的方法,到增、删、改使用的类似于原生了。
对于这个问题,如果你是新手建议会那种方式就用那种方式,因为工期可不等你。
使用框架修改的方式,咔咔也會給大家聊到,這個不用擔心,下期文章哈!
在所有的方法中,都進行了實例化User這個模型,這樣做是可以。
但你想想如果在專案初期就對滿專案的使用這種方式,到中期發現需要改個名字,這時你怎麼辦?
說實話這種方式沒有幾個程式設計師敢做這樣的操作,因為你不知道哪裡就會出現問題。
接著在Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》中進行初始化,在這裡進行實例化模型。
此時你在想如果改了表名,我們是不是只需要修改初始化方法裡邊的名字。
#
雖然在增、刪、改、查的過程中使用的是類似於原生的方式、這種方式在任何框架中都用的比較少。
但是不管是那種方式,都是程式碼對吧!不要對其嗤之以鼻,框架功能可以隨意變化,但這些SQL語句是最終不會變化的。
堅持學習、堅持寫作、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是喀喀,下期見。
#
以上是Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》的詳細內容。更多資訊請關注PHP中文網其他相關文章!