這篇文章將為大家詳細講解有關(guān)Phalcon有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務古城,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
從上圖可以看出這個目錄結(jié)構(gòu)跟TP框架極其相似,對應的目錄就不一一解釋了,這其中的migrations這個目錄跟大家說一下。
這個目錄就跟laravel中的數(shù)據(jù)庫遷移一樣,具體怎么使用就不細講了哈!
框架結(jié)構(gòu)也不是固定的,跟ThinkPHP也一樣可以注冊命名空間來修改目錄結(jié)構(gòu)。
在Phalcon框架中,咔咔最近負責的項目也是使用的多模塊進行開發(fā)的。但是目錄結(jié)構(gòu)也跟使用Phalcon開發(fā)工具生成的目錄是不一樣的。
萬變不離其宗,都是一個模樣。
每個框架必不可少的文件,index.php這個貌似是所有開發(fā)者默認的。
那么在Phalcon這個框架中也是必不可少的了。
關(guān)于這里邊加載的是什么就不去細細的剖析源碼了,沒那個必要,想看源碼解析的可以去搜索ThinkPHP框架源碼解析。
大體執(zhí)行就是先進行依賴注入,使用/config/services.php
引入一些文件其中你要著重知道的是在這里進行了數(shù)據(jù)庫的連接。
這個文件/config/router.php
看名字就知道是什么,路由唄!怎么設(shè)置路由,后邊再說。
在就通過第一步依賴注入后獲取配置信息。
最后一行代碼就是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開發(fā)工具創(chuàng)建了控制器、模型,如果你還沒有創(chuàng)建出來項目就需要去看第一期文章哈!
先看一下訪問如何。
代碼實現(xiàn)
可以看到在index控制器中,還建立了另一個方法kaka。
主流的框架都配置的是index控制器為默認訪問路徑,這個kaka怎么訪問跟其它框架也是一樣的。
訪問鏈接就是http://www.kakaweb.com/index/kaka
即可。
也就是域名+控制器+方法名,這里的方法名需要注意的是不需要帶著Action。
演練一下官方給的案例。
可以看到輸出結(jié)果就是一個a鏈接
這個鏈接會直接跳轉(zhuǎn)到Signup控制器,接下來使用開發(fā)者工具來生成一下這個控制器。
接著點擊剛剛那個按鈕,就會跳轉(zhuǎn)到Signup控制器了。
關(guān)于控制器就先說到這里。
可以看到在模型文件中提前定義好了倆個方法,不管是啥,先來試試看。
在控制器直接寫上如下代碼
查詢結(jié)果
由此可見
find方法是獲取全部數(shù)據(jù)
findFirst只拿第一條數(shù)據(jù)
find(15)查詢id為15的數(shù)據(jù)
find(“type = ‘mechanical’”); 條件搜索
實現(xiàn)代碼
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指的是模型,并不是數(shù)據(jù)庫表名。
實現(xiàn)代碼
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 )); }
可以看到已經(jīng)沒有結(jié)果了
這時你會發(fā)現(xiàn),在檢索數(shù)據(jù)的時候用的框架自帶的方法,到增、刪、改使用的類似于原生了。
對于這個問題,如果你是新手建議會那種方式就用那種方式,因為工期可不等你。
使用框架修改的方式,咔咔也會給大家聊到,這個不用擔心,下期文章哈!
在第五節(jié)中,你們有沒有發(fā)現(xiàn)到這個問題。
在所有的方法中,都進行了實例化User這個模型,這樣做是可以。
但是你想想如果在項目初期就對滿項目的使用這種方式,到中期發(fā)現(xiàn)需要改個名字,這時你怎么辦?
全局搜索User關(guān)鍵字,改為修改的名字?
說實話這種方式?jīng)]有幾個程序員敢做這樣的操作,因為你不知道哪里就會出現(xiàn)問題。
所以咔咔就給你們說一個統(tǒng)一管理這些模型的方法。
可以將模型按照你自己的方式進行聲明。
接著在控制器中進行初始化,在這里進行實例化模型。
此時你在想想如果改了表名,我們是不是只需要修改初始化方法里邊的名字即可。
關(guān)于“Phalcon有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。