首頁  >  文章  >  後端開發  >  Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

咔咔
咔咔原創
2021-07-07 16:07:282748瀏覽

讓我們透過範例來學習Phalcon

  • 本系列目錄
  • 前言
  • 一、專案架構
  • 二、入口檔
  • 三、設定Nginx
  • 四、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》跳轉
  • 五、資料庫之增、刪、改、查
    • #插入資料
    • 修改資料
    • 刪除資料
  • 六、程式碼最佳化
  • 總結

#本系列目錄

一、Phalcon在Windows上安裝《Phalcon入坑指南系列一》

前言

#########上一期文章###是介紹了Phalcon的安裝,並且使用Phalcon開發工具進行創建了專案、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》、模型。也就做了幾個簡單的操作。 ######

本期給大家繼續聊聊Phalcon的實戰使用。

一、專案架構

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

從上圖可以看出這個目錄結構跟TP框架極為相似,對應的目錄就不一一解釋了,這其中的migrations這個目錄跟大家說一下。

這個目錄就跟laravel的資料庫遷移一樣,具體怎麼使用就不細講了哈!

框架結構也不是固定的,跟ThinkPHP也一樣可以註冊命名空間來修改目錄結構。

在Phalcon框架中,咔咔最近負責的專案也是使用的多模組進行開發的。但是目錄結構也跟使用Phalcon開發工具產生的目錄是不一樣的。

萬變不離其宗,都是一個模樣。

二、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

#每個框架必不可少的文件,index.php這個似乎是所有開發者預設的。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

那麼在Phalcon這個框架中也是不可或缺的了。

關於這裡邊加載的是什麼就不去細細的剖析源碼了,沒那個必要,想看源碼解析的可以去搜尋ThinkPHP框架源碼解析。

#

大體執行就是先進行依賴注入,使用/config/services.php引入一些檔案其中你要著重知道的是在這裡進行了資料庫的連線。

這個檔案/config/router.php看名字就知道是什麼,路由唄!怎麼設定路由,後邊再說。

在就通過第一步依賴注入後取得設定資訊。

最後一行程式碼就是include APP_PATH . '/config/loader.php';註冊從設定資訊取得的目錄。

三、設定Nginx

#

在第一期文章中沒有對專案進行配置,接下來進行簡單的配置一下。

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入坑指南系列 二》、模型,如果你還沒創建出來專案就需要去看第一期文章哈!

先看一下訪問如何。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

程式碼實作

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

#可以看到在indexPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》中,也建立了另一個方法kaka。

主流的框架都配置的是indexPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》為預設存取路徑,這個kaka怎麼存取跟其它框架也是一樣的。

訪問連結就是http://www.kakaweb.com/index/kaka即可。

也就是網域 Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》 方法名,這裡的方法名稱要注意的是不需要帶著Action。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

演練一下官方給的Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

可以看到輸出結果就是一個a連結

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

這個連結會直接跳到SignupPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》,接下來使用開發者工具來產生這個Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

接著點擊剛剛那個按鈕,就會跳到SignupPhalcon入坑必須知道的功能《Phalcon入坑指南系列 二》了。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

關於Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》就先說到這裡。

五、資料庫之增、刪、改、查

#可以看到在模型檔案中提前定義好了兩個方法,不管是啥,先來試試看。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

在Phalcon入坑必須知道的功能《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
        ));

    }

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

这里需要注意一下这个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
        ));
    }

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

    public function deleteAction ()
    {
        $user = new User();

        $phql = "DELETE FROM User WHERE id = :id:";

        $status = $user->modelsManager->executeQuery($phql, array(
            'id' => 20
        ));

    }

可以看到已经没有结果了

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

这时你会发现,在检索数据的时候用的框架自带的方法,到增、删、改使用的类似于原生了。

对于这个问题,如果你是新手建议会那种方式就用那种方式,因为工期可不等你。

使用框架修改的方式,咔咔也會給大家聊到,這個不用擔心,下期文章哈!

六、程式碼最佳化

#在第五節中,你們有沒有發現到這個問題。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

在所有的方法中,都進行了實例化User這個模型,這樣做是可以。

但你想想如果在專案初期就對滿專案的使用這種方式,到中期發現需要改個名字,這時你怎麼辦?

全域搜尋User關鍵字,改為修改的名字?

說實話這種方式沒有幾個程式設計師敢做這樣的操作,因為你不知道哪裡就會出現問題。

所以咔咔就告訴你們一個統一管理這些模型的方法。

Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

可以將模型依照你自己的方式宣告。

接著在Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》中進行初始化,在這裡進行實例化模型。

此時你在想如果改了表名,我們是不是只需要修改初始化方法裡邊的名字。

總結

#

本期文章為大家介紹了在使用一個框架時的必備功能。

雖然在增、刪、改、查的過程中使用的是類似於原生的方式、這種方式在任何框架中都用的比較少。

但是不管是那種方式,都是程式碼對吧!不要對其嗤之以鼻,框架功能可以隨意變化,但這些SQL語句是最終不會變化的。

堅持學習、堅持寫作、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是喀喀,下期見。

#

以上是Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn