ホームページ  >  記事  >  バックエンド開発  >  Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

咔咔
咔咔オリジナル
2021-07-07 16:07:282832ブラウズ
#例を通して Phalcon を学びましょう

    このシリーズの内容
  • まえがき
  • #1. プロジェクトの構造
  • 2. エントリーファイル
  • 3. Nginxの設定
  • 4. コントローラージャンプ
  • 5. データベースの追加、削除、変更、クエリ
    • データの挿入
    • データの変更
    • データの削除
    6. コードの最適化
  • 概要

#このシリーズのディレクトリ

1. Windows への Phalcon のインストール「Phalcon Pit ガイド シリーズ 1」

まえがき

前の記事

では、Phalcon のインストールと Phalcon 開発ツールの使用方法を紹介しました。作成したプロジェクト、コントローラー、そしてモデルたち。いくつかの簡単な操作を行っただけです。

今回も引き続き、Phalconの実際の使い方についてお話していきます。

1. プロジェクトの構造

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

From上図からわかるように、このディレクトリ構造は TP フレームワークと非常によく似ていますが、対応するディレクトリについては 1 つずつ説明しませんので、migrations ディレクトリについて説明します。

このディレクトリは、laravel のデータベース移行と同じものですが、使用方法については詳しく説明しません。

フレームワーク構造は固定されていませんが、ThinkPHP と同様に、名前空間を登録してディレクトリ構造を変更できます。

Phalcon フレームワークでは、Kaka の最近のプロジェクトも複数のモジュールを使用して開発されました。ただし、ディレクトリ構造も Phalcon 開発ツールを使用して生成されたディレクトリとは異なります。

すべてが同じままで、すべて同じように見えます。

2. エントリ ファイル

各フレームワークの必須ファイル、index.php はすべて開発者のデフォルトのようです。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

# それから、Phalcon のフレームワークにも不可欠です。

ここでは、何が読み込まれているかについて、ソース コードの詳細を分析しません。必要ありません。

ソース コードの分析を見たい場合は、次のように検索してください。 ThinkPHP フレームワークのソース コード分析。

一般的な実行では、最初に依存関係の注入を実行し、/config/services.php を使用していくつかのファイルを導入します。注意する必要があるのは、データベース接続がここで行われることです。 。

このファイル/config/router.php名前を見れば、それが何であるかがわかります。ルーティングの設定方法については後述します。

依存関係注入の最初のステップを通過した後、構成情報を取得します。

コードの最後の行は include APP_PATH . '/config/loader.php';構成情報から取得したディレクトリを登録します。

3. Nginx

を設定する

記事の最初の号では、プロジェクトが構成されていませんでした。次に、簡単な構成を行いましょう。

Phalcon には 3 つの構成方法が用意されています。最初は最も単純な方法を使用してみましょう。

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;
	    }}

上記はKakaの設定ですが、PhpStudyもお使いの方は直接コピーしてご利用いただけます。

4. コントローラー ジャンプ

最初の記事では、コントロールは halcon 開発ツールを使用して作成されました。まだプロジェクトを作成していない場合は、記事の第 1 号を読む必要があります。

まず訪問がどのように行われるかを見てみましょう。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

#コード

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

あなたインデックス コントローラーでは、別のメソッド kaka も確立されていることがわかります。

主流のフレームワークはインデックス コントローラーをデフォルトのアクセス パスとして設定されており、この kaka へのアクセス方法は他のフレームワークと同じです。

アクセスリンクは

http://www.kakaweb.com/index/kaka です。

はドメイン ネーム コントローラーのメソッド名です。ここでのメソッド名に Action を含める必要はないことに注意してください。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

# 公式ケースを練習してください。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

#出力結果がリンクであることがわかります。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

このリンクはサインアップ コントローラーに直接ジャンプします。次に、開発者ツールを使用してこのコントローラーを生成します。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

# 次に、今ボタンをクリックすると、Signup コントローラーにジャンプします。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

# まずはコントローラーについて話しましょう。

5. データベースの追加、削除、変更、クエリ

で事前に定義されていることがわかります。モデル ファイル さて、2 つの方法がありますが、それが何であっても、最初に試してみましょう。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

次のコードをコントローラーに直接記述します

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

##クエリ結果

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

#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エントリーガイド シリーズ2」

这里需要注意一下这个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エントリーガイド シリーズ2」

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

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

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

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

    }

可以看到已经没有结果了

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

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

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

フレームワークの修正方法についてもKakaがお話ししますので、ご心配なく、次回の記事も公開します!

6. コードの最適化

セクション 5 で、この問題を見つけましたか?

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

すべてのメソッドで User モデルがインスタンス化されますが、これは問題ありません。

しかし、考えてみてください。プロジェクトの初期段階でこの方法をプロジェクト全体に使用し、途中で名前を変更する必要があることが判明した場合、どうしますか?する?

User キーワードをグローバルに検索し、変更された名前に変更しますか?

正直に言うと、どこで問題が発生するかわからないため、この種の操作をあえて行うプログラマーはほとんどいません。

それでは、Kaka がこれらのモデルを一元管理する方法を説明します。

Phalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」

#モデルは独自の方法で宣言できます。

次に、コントローラーで初期化し、ここでモデルをインスタンス化します。

この時点で、テーブル名が変更された場合、初期化メソッドで名前を変更するだけでよいのではないかと考えていますか?

要約

この記事ではフレームワークを利用する際に必要な機能を紹介します。

追加、削除、変更、確認のプロセスではネイティブ風のメソッドが使用されますが、このメソッドがどのフレームワークでも使用されることはほとんどありません。

しかし、どちらの方法であっても、それはすべてコードですよね?フレームワーク関数は自由に変更できますが、これらの SQL ステートメントは決して変更されません。

#学習への粘り強さ、執筆への粘り強さ、そして共有への粘り強さは、カカがキャリア以来常に貫いてきた信念です。巨大なインターネット上の Kaka の記事が少しでもお役に立てれば幸いです。カカです、また会いましょう。

以上がPhalcon入社時に知っておきたい機能「Phalconエントリーガイド シリーズ2」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。