您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Phalcon有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
從上圖可以看出這個目錄結構跟TP框架極其相似,對應的目錄就不一一解釋了,這其中的migrations這個目錄跟大家說一下。
這個目錄就跟laravel中的數據庫遷移一樣,具體怎么使用就不細講了哈!
框架結構也不是固定的,跟ThinkPHP也一樣可以注冊命名空間來修改目錄結構。
在Phalcon框架中,咔咔最近負責的項目也是使用的多模塊進行開發的。但是目錄結構也跟使用Phalcon開發工具生成的目錄是不一樣的。
萬變不離其宗,都是一個模樣。
每個框架必不可少的文件,index.php這個貌似是所有開發者默認的。
那么在Phalcon這個框架中也是必不可少的了。
關于這里邊加載的是什么就不去細細的剖析源碼了,沒那個必要,想看源碼解析的可以去搜索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開發工具創建了控制器、模型,如果你還沒有創建出來項目就需要去看第一期文章哈!
先看一下訪問如何。
代碼實現
可以看到在index控制器中,還建立了另一個方法kaka。
主流的框架都配置的是index控制器為默認訪問路徑,這個kaka怎么訪問跟其它框架也是一樣的。
訪問鏈接就是http://www.kakaweb.com/index/kaka
即可。
也就是域名+控制器+方法名,這里的方法名需要注意的是不需要帶著Action。
演練一下官方給的案例。
可以看到輸出結果就是一個a鏈接
這個鏈接會直接跳轉到Signup控制器,接下來使用開發者工具來生成一下這個控制器。
接著點擊剛剛那個按鈕,就會跳轉到Signup控制器了。
關于控制器就先說到這里。
可以看到在模型文件中提前定義好了倆個方法,不管是啥,先來試試看。
在控制器直接寫上如下代碼
查詢結果
由此可見
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:)";
在這里User指的是模型,并不是數據庫表名。
實現代碼
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 )); }
public function deleteAction () { $user = new User(); $phql = "DELETE FROM User WHERE id = :id:"; $status = $user->modelsManager->executeQuery($phql, array( 'id' => 20 )); }
可以看到已經沒有結果了
這時你會發現,在檢索數據的時候用的框架自帶的方法,到增、刪、改使用的類似于原生了。
對于這個問題,如果你是新手建議會那種方式就用那種方式,因為工期可不等你。
使用框架修改的方式,咔咔也會給大家聊到,這個不用擔心,下期文章哈!
在第五節中,你們有沒有發現到這個問題。
在所有的方法中,都進行了實例化User這個模型,這樣做是可以。
但是你想想如果在項目初期就對滿項目的使用這種方式,到中期發現需要改個名字,這時你怎么辦?
全局搜索User關鍵字,改為修改的名字?
說實話這種方式沒有幾個程序員敢做這樣的操作,因為你不知道哪里就會出現問題。
所以咔咔就給你們說一個統一管理這些模型的方法。
可以將模型按照你自己的方式進行聲明。
接著在控制器中進行初始化,在這里進行實例化模型。
此時你在想想如果改了表名,我們是不是只需要修改初始化方法里邊的名字即可。
關于“Phalcon有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。