検索

Lithium Framework: Getting Started

リチウムフレームワークの初心者:キーポイント

リチウムは、Webアプリケーション開発にモデルビューコントローラー(MVC)アーキテクチャを使用するPHP 5.3以降に適した柔軟なPHPフレームワークです。
  • コントローラーは、アプリケーションルーティングシステムによってルーティングされたリクエストを処理します。ビューは、ビジネスロジックをプレゼンテーションから分離し、ブラウザに表示されるコンテンツの簡単なテーマを可能にするプレゼンテーションレイヤーです。このモデルは、データベース内のコンテンツを定義および処理し、CRUD(作成、読み取り、更新、削除)操作を簡単にします。
  • リチウムは、MySQL、MongoDB、CouchDBを含むさまざまなデータベースをサポートしています。このフレームワークには、エンジンに優しいURLを簡潔で検索することを可能にする強力なルーティングシステムもあります。
  • リチウムの慣習は簡単になります。組み込みのCRUDメソッドを提供し、カスタムルーティングを可能にし、複数のレイアウトをサポートし、ビュー内のより小さな要素をレンダリングします。これらの機能により、リチウムはWebアプリケーション開発のための強力なツールになります。
  • リチウムは、PHP 5.3以上に適したシンプルで効率的なPHPフレームワークです。制限が強すぎずにWebアプリケーションを起動するための優れたツールセットを提供するように設計されています。

Lithiumは、この記事で説明するモデル-View-Controller(MVC)アーキテクチャを使用します。このフレームワークを使用して、アプリケーションのビジネスと表現ロジックをどのように定義するかを示します。次の手順を実行します:

URLリクエストをルーティングするためにコントローラーを設定します。このコントローラーは、データモデルを使用して、データベースからいくつかの情報を取得および処理します。この情報は、ビューを使用してブラウザに表示されます。これらはすべて標準的なMVCプロセスですが、リチウムで実行することは喜びです。

サーバーにフレームワークが設定されていると仮定します。少なくとも、URLに移動すると、デフォルトアプリケーションの起動ページが表示されます。さらに、いくつかの情報を含むデータベースが必要です。 MySQLを使用しますが、LithiumはMongodbやCouchDBなどの他の多くのストレージシステムをサポートしています。

学習を続けたい場合は、Gitリポジトリをセットアップしました。クローンできます。マスターブランチには通常のリチウムフレームワークが含まれていますが、MVCブランチにはこの記事のコードが含まれています。リチウムサブモジュールを初期化して更新することを忘れないでください。データベースに接続するには、App/config/bootstrapフォルダーにあるconnections_default.phpファイルをコピーし、connections.phpに名前を変更します。次に、資格情報をファイルに追加します。

始めましょう。

データ

興味深いMVCコンテンツを入力する前に、データベースにテーブルをいくつかの情報を追加しましょう。仮想ページデータを使用するため、私のテーブル(名前付きページ)には、ID列(int、auto-increment and primaryキー)、タイトル列(Varchar 255)、コンテンツ列(テキスト)、作成された列( int)。この表には、サンプルデータの2列があります。手順を正確にフォローしたい場合は、テーブル作成ステートメントを次に示します。

CREATE TABLE `pages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` text,
  `created` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

以下は私の仮想データラインです:

INSERT INTO `pages` (`id`, `title`, `content`, `created`)
VALUES
    (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745),
    (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
もちろん、他のデータを使用できます。

cはコントローラーの略 です

コントローラーは、おそらくMVCフレームワークの最も重要な部分です。それらの目的は、アプリケーションルーティングシステムによってルーティングされたリクエストを処理することです。

アプリのアプリ/コントローラー/フォルダーを見ると、これがコントローラーを配置する必要がある場所であることがわかります。 Sitecontroller.php(各コントローラークラスは独自のファイルにある)という新しいファイルを作成し、次のクラス宣言を貼り付けて開始します。

ご覧のとおり、リチウムベースコントローラークラスをSiteControllerと呼ばれる独自のクラスに拡張します。このクラスでは、URLから要求するときに必要なロジックを実行するメソッドを作成できます。それが実際にどのように適用されるかを確認しますが、最初に、ルーティングの仕組みを理解しましょう。
<?php namespace app\controllers;

class SiteController extends \lithium\action\Controller {

}

デフォルトでは、URLを構築するときに、コントローラーのクラス名(この場合)、メソッド、およびパラメーターにマッピングするパラメーターを使用します。メソッド名が渡されない場合、リチウムはそれ自体でindex()という名前のメソッドを想定します。したがって、http://example.com/site/に移動すると、リチウムがこの方法を探して電話します。ここで、パラメーター($ ID)を取るView()というメソッドがあるとします。コントローラーメソッドを呼び出すURLはhttp://example.com/site/view/1です。ビューはメソッドの名前であり、1は関数に渡されたパラメーターです。メソッドがより多くのパラメーターを取得する場合、URLのスラッシュ(/)でパラメーターを分離するだけです。

しかし、私が言ったように、これはデフォルトの動作です。詳細を制御するには、/app/config/routes.phpファイルで独自のルートを定義できます。詳細は説明しませんが、対応するドキュメントページの詳細については詳細を確認できます。

次に、仮想データベースから個々のページを表示する責任があるページ()メソッドを作成しましょう。

上記の上記では、データベースページ情報をシミュレートし、配列に保存します。次に、この配列をコントローラーのset()メソッド(継承)に渡し、ビューに送信します。または、set()メソッドを使用する代わりに、$データアレイを返すことができます。ただし、どちらの場合も、配列のキーは変数名を表し、ビューファイルからアクセスできます。それがどのように機能するか見てみましょう。

public function page() {

    // 模拟页面信息。
    $title = 'My awesome page title';
    $content = 'My awesome page content. Yes indeed.';
    $created = '10 April 2014';

    // 准备页面信息以传递给视图。
    $data = array(
      'title' => $title,
      'content' => $content,
      'created' => $created,
    );

    // 将数据传递给视图。
    $this->set($data);

}
(次の内容は元のテキストに似ていますが、ステートメントは調整および書き直され、元の意図を維持し、重複するコードブロックを回避しています)

vビュー

の略です

ビューは、MVCフレームワークのプレゼンテーションレイヤーです。それらは、アプリケーションのビジネスロジックを表現から分離し、ブラウザに表示されるコンテンツの簡単なテーマを可能にするために使用されます。

ページ情報を表示するビューを作成しましょう。アプリ/ビュー/フォルダーでは、それを使用するコントローラークラスにちなんで名付けられた別のフォルダーを作成する必要があります(この場合)。このフォルダーでは、.html.php拡張子が添付されたメソッド自体にちなんで名前が付けられたファイルを作成する必要があります。これは、リチウムの名前ビューであるコンベンションであり、コントローラーに簡単に接続できます。

ページの例では、新しいファイルはapp/views/site/page.html.phpに配置されます。

このファイルでは、次のファイルを貼り付けます

あなたが推測したかもしれないように、ここにいくつかの基本的なタグがあります。ここでは、コントローラーから配列キーを渡すことに名前が付けられた変数を印刷します。 Lithiumは、この構文を使用して変数を印刷します。これは、HTMLのクリーンアップを担当する$ H()関数を介して実行するためです。ただし、これは印刷変数にのみ適用され、このオブジェクト$のプロパティではありません。

CREATE TABLE `pages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` text,
  `created` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
これまでに行ったことをテストするには、http://example.com/site/pageに移動すると、シミュレーション情報を示す素敵なページが表示されます。また、単純なビューがより複雑なレイアウト(フレームワークに伴うデフォルトのレイアウト)でレンダリングされていることに気付くでしょう。

リチウムのレイアウトは、タイトルやフッターなどの一般的に使用されるタグを使用してコンテンツをラップするために使用されます。それらはアプリ/レイアウトフォルダーにあり、$ this&gt; content()を使用してビューをレンダリングします。私たちのビューは、デフォルトでdefault.html.phpレイアウトでレンダリングされますが、必要に応じて別のレイアウトを指定できます。このコントローラーのすべてのメソッドに適用されるクラス属性として、または次のようなメソッド自体に適用されるクラス属性として、これをコントローラーから実行できます。

デモの目的に適しているため、デフォルトのレイアウトに固執します。

mはモデル
INSERT INTO `pages` (`id`, `title`, `content`, `created`)
VALUES
    (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745),
    (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);

の略です

リクエストと表現のロジックが処理されたので、シミュレートされたページデータを仮想データベースコンテンツに置き換える時が来ました。モデルを使用して、この情報を抽象化して簡単にアクセスします。

モデルクラスは、データベース内のコンテンツを定義および処理するため、MVCフレームワークの非常に重要な部分です。また、アプリケーションがこのデータでCRUD(作成、読み取り、更新、削除)を簡単に実行できるようにします。リチウムでどのように機能するか見てみましょう。 最初に行う必要があることは、アプリ/モデルフォルダーでpages.phpというクラスファイルを作成し、次のことを貼り付けます。

基本モデルクラスを拡張し、そのすべての方法を使用しました。モデルクラス名は、関連するレコードを含むデータベーステーブルと一致する必要があります。したがって、あなたのページがページでない場合は、リチウムが自動的にこの命名を取得して作業を簡素化するため、必ず調整してください。

次に、このファイルをコントローラーのクラスファイルに含める必要があるので、名前空間宣言の下に次のことを貼り付けてください:

CREATE TABLE `pages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` text,
  `created` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

次は、ページ()メソッドのモックコンテンツを削除し、この関数が$ IDパラメーターを渡して、取得する必要があるページがわかるようにすることです。残された簡単なタスクは、ページレコードを照会し、結果をビューに渡すことです。したがって、変更されたページ()メソッドは次のようになります:

INSERT INTO `pages` (`id`, `title`, `content`, `created`)
VALUES
    (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745),
    (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);

モデル親クラスの最初の()メソッドを使用して、条件を使用して照会します。結果は、data()メソッドを使用してレコードデータを取得するオブジェクトです。このデータは、テーブル列の名前がキーとして配列を使用します。残りは以前と同じですが、データベースから得られるものがUNIXタイムスタンプであるため、PHP Date()関数を使用して作成されたフィールドをフォーマットすることを除きます。それでおしまい。

結論 このチュートリアルでは、リチウムMVCフレームワークを理解して使用することがどれほど簡単かを見ました。コントローラー、ビュー、モデルを定義する方法と、それらを一緒に使用して、きちんとした個別のアプリケーションフローを作成する方法を学びました。また、リチウム協定がどれほど有用であるかがわかりました。気付いていなくても、データベースコンテンツを抽象化し、簡単にアクセスできるように公開します。

あなたが何かを学び、リチウムが提供する他の強力な特徴をより深く掘り下げることに興味があることを願っています。組み込みのCRUDメソッドとは何ですか?それらを拡張する方法は?独自のカスタムルートを定義する方法は?視界でも、複数のレイアウトを使用して小さな要素をレンダリングするにはどうすればよいですか?これらは、リチウムが当社のWebアプリケーションに提供する強力な機能であり、試してみる価値があります。

私はあなたの好奇心を喚起しましたか?この優れたフレームワークについてもっと知りたいですか?

(FAQパーツは元のテキストと同じで、変更は必要ありません)

以上がリチウムフレームワーク:開始の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

thedifferencebetferencefued fieneunset()andsession_destroy()isthatunset()clearsspecificsessionvariablesはsessionactiveであり、ssession_destroy()ターミナテンテンセッション

負荷分散のコンテキストでの粘着性セッション(セッションアフィニティ)とは何ですか?負荷分散のコンテキストでの粘着性セッション(セッションアフィニティ)とは何ですか?May 04, 2025 am 12:16 AM

StickysionsionsureuserRequestsoredtotheSameserverforsessiondataconsistency.1)Sessionidedificationisionidificationsisignivisionsignsignsuserstoserversusing okiesorurlmodifications.2)CondingRoutingDirectSSubSubSubsEntRequestStotheSameserver.3)LoadBalancingDistributeNewuser

PHPで利用可能なさまざまなセッション保存ハンドラーは何ですか?PHPで利用可能なさまざまなセッション保存ハンドラーは何ですか?May 04, 2025 am 12:14 AM

phpoffersvarioussionsionsavehandlers:1)ファイル:デフォルト、simplebutmaybottleneckonhigh-trafficsites.2)memcached:high-performance、yealforspeed-criticalapplications.3)redis:similartomcached、witordededpersistence.4)データベースの提供

PHPでのセッションとは何ですか?なぜそれらが使用されているのですか?PHPでのセッションとは何ですか?なぜそれらが使用されているのですか?May 04, 2025 am 12:12 AM

PHPでのセッションは、サーバー側のユーザーデータを保存して、複数のリクエスト間で状態を維持するメカニズムです。具体的には、1)セッションはsession_start()関数によって開始され、データは保存され、$ _Sessionスーパーグローバルアレイを読みます。 2)セッションデータはデフォルトでサーバーの一時ファイルに保存されますが、データベースまたはメモリストレージを介して最適化できます。 3)セッションを使用して、ユーザーのログインステータス追跡とショッピングカート管理機能を実現できます。 4)セッションの安全な送信とパフォーマンスの最適化に注意を払い、アプリケーションのセキュリティと効率を確保します。

PHPセッションのライフサイクルを説明してください。PHPセッションのライフサイクルを説明してください。May 04, 2025 am 12:04 AM

phpssionsStartWithsession_start()、figenateAuniqueidandcreateSaServerfile; theySistacrossRequestsandcanbemanbemanBeithsession_destroy()

絶対的なセッションタイムアウトとアイドルセッションのタイムアウトの違いは何ですか?絶対的なセッションタイムアウトとアイドルセッションのタイムアウトの違いは何ですか?May 03, 2025 am 12:21 AM

絶対セッションのタイムアウトはセッションの作成時に開始され、アイドルセッションタイムアウトはユーザーの操作なしに開始されます。絶対セッションタイムアウトは、金融アプリケーションなど、セッションライフサイクルの厳格な制御が必要なシナリオに適しています。アイドルセッションタイムアウトは、ソーシャルメディアなど、ユーザーが長い間セッションをアクティブに保つことを望んでいるアプリケーションに適しています。

セッションがサーバーで機能していない場合、どのような措置を講じますか?セッションがサーバーで機能していない場合、どのような措置を講じますか?May 03, 2025 am 12:19 AM

サーバーセッションの障害は、手順に従って解決できます。1。セッションが正しく設定されていることを確認するために、サーバーの構成を確認します。 2.クライアントCookieを確認し、ブラウザがそれをサポートしていることを確認し、正しく送信します。 3. Redisなどのセッションストレージサービスを確認して、それらが正常に動作していることを確認します。 4.アプリケーションコードを確認して、正しいセッションロジックを確認します。これらの手順を通じて、会話の問題を効果的に診断および修復し、ユーザーエクスペリエンスを改善することができます。

session_start()関数の重要性は何ですか?session_start()関数の重要性は何ですか?May 03, 2025 am 12:18 AM

session_start()iscrucialinphpformangingusersions.1)itInitiateSanewsessionifnoneExists、2)resumesanexistingsession、および3)SetSessionCookieforcontinuityAcrossRequests、ApplicationslicationSliviseSlikeUserauthicationAnticatent。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。