1. ファイル構造
3 つのフォルダーを作成
コントローラー フォルダーにはコントローラー ファイルが保存されます
ビュー フォルダーにはビュー ファイルが保存されます
モデル フォルダーにはデータ ファイルが保存されます
唯一の入り口として、index.php を 1 つ作成します
2. コントローラー
ここに来ました デモコントローラーを作成しますコントローラーフォルダーの下にある .php ファイルの内容は次のとおりです
コードをコピーします コードは次のとおりです:
class DemoController
{
functionindex()
{
echo ('hello world ');
}
}
/* ファイルの終わり democontroller.php */
このファイルでは、DemoController という名前のオブジェクトを作成し、hello world を出力するインデックス メソッドが含まれています。次に、index.phpのDemoController内のindexメソッドを実行します。
index.phpのコードは次のとおりです
コードをコピーします コードは次のとおりです:
require('controller/democontroller.php');
$c DemoController(); ;
$controller->index();
/* ファイルの終わりindex.php */
index.php を実行すると、予想通り、長い間失われていた Hello World が表示されました。これら 2 つのファイルは非常にシンプルですが、唯一の入り口から実行したいコントローラーを実行するという MVC の本質も少し明らかにしています。もちろんコントローラー部分はuriで決まるはずなので、どのコントローラーを実行するかをuriで判断できるようにindex.phpを書き換えましょう。
index.php は次のようにコードを書き換えます:
コードをコピーします コードは次のとおりです:
$c_str=$_GET['c'];
//コントローラーを取得します。 to run
$c_name= $c_str.'Controller';
//規約により、URLから取得したコントローラ名にはControllerが含まれていないので、ここに記入します。
$c_path='controller/'.$c_name.'.php';
//規約に従って、コントローラーファイルはコントローラーフォルダーに作成され、クラス名はファイル名と同じでなければなりません。ファイル名はすべて小文字にする必要があります。
$method=$_GET['a'];
//実行するアクションを取得する
require($c_path);
//コントローラーファイルをロードする
$c $c_name
//コントローラーファイルをインスタンス化する
$ controller- >$method();
//このインスタンスでアクションを実行します
/* ファイルの終わりindex.php */
に http://localhost/index.php?c=demo&a=index を入力しますブラウザ、Hello World を取得しました。もちろん、別のコントローラーがあり、それを実行したい場合は、url パラメーターの c と a の値を変更するだけで済みます。
ここで説明すべき質問がいくつかあります。
1. PHP は動的言語です。必要なオブジェクトを直接取得し、文字列 new、つまり上記の新しい $c_name を通じて必要なメソッドを実行できます。$c_name は new 'DemoController' として理解できます。もちろん、新しい「DemoController」を直接記述することはできません。「DemoController」文字列は変数を介して転送する必要があります。方法は同じです。
2. URL の c の値は、demo です。つまり、$c_name の値は、demoController である必要があります。このように実行できますか? 「php では大文字と小文字が区別されます」という文は不完全です。php では、変数 ($ が前に付く) と定数 (define で定義される) のみが大文字と小文字を区別し、クラス名、メソッド名、さらには一部のキーワードは大文字と小文字を区別しません。書かれた。また、true、false、null などは、すべて大文字またはすべて小文字のみにすることができます。もちろん、実際のエンコード処理では大文字と小文字を区別する必要があります。
3. View
前のコントローラーでは「hello world」を出力するだけでしたが、これでは mvc の効果は得られませんでした。次に、これをベースに view 関数を追加します。ビュー機能を追加します。はい、それは邪悪な require または include によって達成されます。
まず、ビューフォルダーの下にindex.phpを作成し、何かを書きます(笑、まだhello worldを書きました)。次に、以前の DemoController を書き直します。コードは次のとおりです:
コードをコピー コードは次のとおりです:
class DemoController
{
function Index()
{
require('view/index.php') ;
}
}
/* ファイルの終わり democontroller.php */
ブラウザで再度実行して、必要なコンテンツが出力されたかどうかを確認します。
次に、コントローラーを介してビューにデータを渡します。 コードは次のとおりです。
コードをコピーします。 コードは次のとおりです。
class DemoController{
function Index( )
{
$data['title']='最初のタイトル'
$data['list']=array('A','B','C','D'); /index.php');
}
}
/* ファイルdemocontroller.php */
ビューフォルダー内のindex.phpファイルのコードは次のとおりです:
コードをコピーします
foreach ($data['list'] as $item)
{
echo $item.'
'; >
上記では、PHP が独自の MVC フレームワークを作成できることを紹介しました。これは、PHP チュートリアルに興味のある友人に役立つことを願っています。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

繊維はPhp8.1で導入され、同時処理機能が改善されました。 1)繊維は、コルーチンと同様の軽量の並行性モデルです。 2)開発者がタスクの実行フローを手動で制御できるようにし、I/O集約型タスクの処理に適しています。 3)繊維を使用すると、より効率的で応答性の高いコードを書き込むことができます。

PHPコミュニティは、開発者の成長を支援するための豊富なリソースとサポートを提供します。 1)リソースには、公式のドキュメント、チュートリアル、ブログ、LaravelやSymfonyなどのオープンソースプロジェクトが含まれます。 2)StackOverFlow、Reddit、およびSlackチャネルを通じてサポートを取得できます。 3)開発動向は、RFCに従うことで学ぶことができます。 4)コミュニティへの統合は、積極的な参加、コード共有への貢献、および学習共有への貢献を通じて達成できます。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
