1

CodeIgniterでアプリを作成しています。私はコントローラーAPIを持っていて、それから約300の関数を持っています。

これはパフォーマンスの問題ではないかと思います。どんな体も助けることができますか?

4

1 に答える 1

1

非常に大きなコントローラーは、解析に時間がかかります。コントローラからメソッドが呼び出されるたびに、コントローラクラスが呼び出されてインスタンス化されるため、コントローラ全体を解析する必要があります(より適切には、ファットコントローラはリクエストごとに1回エンティティで解析する必要があります)。大きなファイルの解析には時間がかかりますが、追加の時間は非常に長くなります。

これは、パフォーマンスの観点から私が考えることができる唯一の欠点です。

もちろん、多くのメンテナンスの問題があります。

「メソッドの1つを呼び出すたびにインスタンス化されたクラス」の説明

CodeIgniterのURLルーティングは次のように機能します。

example.com/controller/method

だからあなたが訪問するとき

example.com/user/create

createコントローラクラスの関数userです。createメソッドを呼び出すにはuser、最初にクラスをインスタンス化してから、メソッドを呼び出す必要があります。

コントローラクラスに他に200の関数がある場合は、それらも解析する必要があります。

ここでブラウザをポイントすると

example.com/user/delete

クラスの以前のインスタンス化はもう存在しません。クラス全体を再度解析する必要があります。

于 2012-05-30T18:51:52.220 に答える