問題タブ [psr-0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP CodeSniffer Fixer に名前空間宣言を無視させるにはどうすればよいですか?
PHP Coding Standards Fixerに sublime text 2 プラグインを使用しています。名前空間が無効であると見なされることを除いて、正常に動作しています(実際には無効であり、私はそれで問題ありません)。このエラーにより、スクリプトはファイルの残りの部分を修正できなくなります。次のエラーが表示されます。
名前空間の制約を無視するようにスクリプトに指示するにはどうすればよいですか。コマンドライン引数と Sublime text 2 ユーザー設定の両方を変更できます。
php - SymfonyClassLoaderコンポーネントの例
SymfonyのClassLoaderコンポーネントと新しいPSR-0標準がどのように機能するかを理解するために、簡単な例を設定しようとしています。
最初にBar.phpを作成しました:
次に、autoloader.phpを作成しました(ベンダーパスの下にClassLoaderコンポーネントがあります)。
最後に、Foo.phpを作成しました。
しかし、私が実行すると:
次のエラーメッセージが表示されます。
PHP警告:非複合名「Acme」のuseステートメントは、4行目のFoo.phpでは効果がありません。
PHPの致命的なエラー:7行目のFoo.phpにクラス「Bar」が見つかりません
私はここで何が間違っているのですか?
更新:
を使用する代わりに、をnamespace Acme
使用するnamespace Acme\Bar
とBar.php
、上記と同じエラーメッセージが表示されます。
php - 多くのパスを持つ PSR-0 SplClassLoader
何時間も経った後、デバッグと変更を行っても、これが可能かどうかわかりません。教えてください。
私のフレームワークは、サーバー上の多くのサイトで使用されています。SplClassLoaderを実装しようとしていますが、ほとんどまたはまったく成功していません。別のパスを追加する必要があるまで(ディスパッチが完了したとき)、ローダーは(いくつかの変更を加えて)動作します。
ローダーは、フレームワークがアプリと同じディレクトリに配置されている場合にのみ動作するように見えますが、逆には動作しません。
このローダーを使用することは可能ですか
- 適切な名前空間のサポート
- ハックがほとんどまたはまったくない
ライブラリが集中化され、多くのアプリがそれを使用するのはいつですか?
私のセットアップ:
site1/public/index.php
ディスパッチを行ってから実際のコントローラーを開始するフロントコントローラーを開始します。
私の(おそらく間違っている)名前空間の設定:
Framework
using namespace内のすべてのクラスFramework
。フレームワークからクラスを拡張するコントローラーを開始するまでは、これで問題ありません。これは物事がうまくいかないところです。上記の SplClassLoader は、これらのようなパスを処理できません。エラーログからわかるのは、主な問題は、私にとって受け入れられないlib
下に配置されていないことです。site1
php - symfony2のどこに内部クラスファイルを追加すればよいですか?
フレームワークの学習を開始するために古いプロジェクトをsymfony2に移植していますが、PHPファイルにいくつかのヘルパー関数を適切に追加する方法がわかりません。
php - PHP ライブラリが独自のオートローダーを登録できる場合、なぜ PSR-0 はそれらが統一されたディレクトリにある必要があるのでしょうか?
私は他のライブラリを統合できるようにしたいフレームワークを構築しています (これは非常に単純化されています。代わりに既存のフレームワークを使用することはお勧めしません。役に立ちません)。
PSR-0 の推奨事項では、各サブ名前空間内のすべてのファイルを独自の特定のディレクトリに含めることを提案しています。フレームワークのユーザーにとって複雑さを軽減するために、すべてを 1 つの名前空間に保持し、ファイルをディレクトリに整理したいと考えています。
PHP ライブラリが独自のオートローダをspl_register_autoload()
に登録できる場合、このディレクトリ構造を順守することが不可欠なのはなぜでしょうか? PSR-0 を単純に回避し、自分のクラスに独自のオートローダーを使用してから、(たとえば) Symfony のオートローダーを使用する可能性のある Symfony クラスに使用することは実行可能/許可されますか?
php - SplClassLoaderの使用方法
PSR-0オートローダーを理解して使用しようとしています。しかし、それは機能しません。
マイフォルダの構造:
芯/
- としょうかん/
- モデル/
ルートの私のindex.php
ModelフォルダーのPost.php。
PostInterface
次のエラーが発生します:
致命的なエラー:クラス'Model \ Post'が17行目のC:\ wamp \ www \ Test\index.phpに見つかりません
私はここで何が間違っているのですか?
php - PSR-0 引数が渡されました
index.php
PostMapper インターフェイスと PostMapper には「Post」があります
「投稿」ではないことに文句を言う理由がわかりません
php - SplClassLoader の名前空間要件とカスタム ディレクトリ レイアウトをどのように調整できますか?
最近、PHP でカスタム MVC フレームワークを書き始めました。それは基本的に学習演習です。
私のクラスは次のディレクトリにあります。
- システム/ライブラリ/
- システム/コントローラー/
- システム/モデル
- アプリケーション/ライブラリ/
- アプリケーション/コントローラー/
- アプリケーション/モデル
名前空間と Apache 2 ハンドラー スタイルの URL (コントローラー/アクション/ID) を使用してコントローラーをインスタンス化する方法がわからないため、名前空間を使用していません。他のクラスを自動ロードする Bootstrap クラスを作成しました。
それは正常に動作します。ただし、PSR-0 で推奨されている実装を実際に使用する必要があることはわかっています。
https://gist.github.com/221634
ただし、名前空間なしで機能させる方法がわかりません。名前空間はオプションのパラメーターのようです。ただし、次のようにしても何も起こりません。Apache ログにエラーが記録されることさえありません。
php - パッケージなしでクラスを初期化するにはどうすればよいですか、自動ロード
しかし、クラスを初期化するときに名前空間テストを追加したくない場合はどうなりますか?
例:$ router = new Router;
..。