16

重複の可能性:
PHPで100%オブジェクト指向をプログラムする方法はありますか?

私が達成しようとしていることは、次のようになります。

 <?php
      //index.php
      class Site{
           public static function main(){
                // starts all the processing of the site
           }
      }
 ?>

そのため、誰かがサイトindex.phpにアクセスすると、クラス外のコードがなくてもサイトが起動します。

__autoloadはい、クラスの自動読み込みを使用したり、処理したりできることは知っていspl_autoload_registerますが、それでもクラスの外部に追加する必要がある可能性があります。

これが可能かどうかは疑問ですが、なぜこれが不可能なのかわかりません。

4

4 に答える 4

31

いいえ。

Java のエントリ ポイントはmainメソッドとして定義されます。PHP のエントリ ポイントは、実行される最初のファイルの最初の行として定義されます。「手続き型」コードから始める必要があります

于 2012-09-04T10:34:51.920 に答える
1

そのように Site クラスを記述し、そのクラスにすべてを構築させることができますが、クラスを初期化するためのエントリ ファイルが必要です。インデックス ファイルの 1 行でサイトを「起動」できます。柔軟性の大きな阻害剤のようには見えません。

したがって、答えはノーです:)

于 2012-09-04T10:34:58.680 に答える
0

phpには、すぐに使えるそのような概念はありません。ユーザーを目的のファイルにリダイレクトする index.php または .htaccess ファイルのいずれかに何かを含める必要がありますが、クラスは常にコードによってインスタンス化する必要があります

于 2012-09-04T10:36:45.470 に答える
-1

サイトで .htaccess を使用して、この非常に簡単な bij を実現できます。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

index.php がすべての処理を行います。1 行の手続き型コードで、クラスを作成し、そこから先に進むことができます。

<?php
      //index.php
      class Site{
           public static function main(){
                // starts all the processing of the site
           }
      }

      Site::main()
 ?>

私のチュートリアル/ブログを参照してください。

于 2012-09-04T10:39:12.633 に答える