2

そのため、私は 2006 年から PHP で手続き型プログラミング スタイルを使用してきました。

最近、私はオブジェクト指向プログラミングをより認識し始めました。

私が最も指摘しているのは、MVC スタイルの編成と短い URL です。

URL が「index.php?page=profile&member=1」ではなく、「page/profile/member/1」になります。

幅広いリソースを使用して OOP&MVC アーキテクチャを学習しようとしていますが、まだ把握するには少し多すぎます。1ヶ月経っても!

私は常に基本的な関数 (etc) {}、if、else、and、or ステートメント、および SQL クエリを使用して仕事を終わらせてきました。今までの知識は、私が必要としていたほとんどすべてをカバーしています。

私の基本的な手続き型プログラミング スタイルを使用して短縮 URL を実現する方法があるかどうか疑問に思っています。

私は以下のこの方法を試しました

.htaccess

RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?page=$1 [L]

index.php

<?php

$links = parse_ini_file('links.ini');

if (isset($_GET['page']) && array_key_exists($_GET['page'], $links)) {
    require $links[$_GET['page']];
}
else {
    echo '
    Home page or unknown link
    ';
}

リンク.ini

members  = pages/members.php
profile  = pages/profile.php

この方法は単に URL を短縮するだけで機能しますが、profile/user/1 別名 index.php?page=profile&user=1 (データベース クエリであるユーザー変数) で機能させる方法がわかりません。

どんな助けでも大歓迎です!!!

4

1 に答える 1

0

これは、フロント コントローラーと呼ばれるもので実現できます。このSitepoint の記事は概念を理解するのに役立つかもしれませんが、それを実現するためにオブジェクト指向である必要はありません。

基本的に、実際の書き換えを行うのではなく、すべてのリクエストをindex.php:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php

これで、 内index.phpでリクエストを選択して、必要に応じてリクエストparse_urlを処理できます。

于 2016-10-05T13:01:28.137 に答える