問題タブ [psr-4]

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.

0 投票する
1 に答える
42 参照

php - 名前空間に一致する名前でクラスを拡張する

PSR-4 オートローディングと組み合わせて、次のファイル構造を検討してください。

クラスBar.phpは拡張することFoo.phpです。それらがすでに深くネストされた名前空間内にあると仮定すると、Bar.phpのヘッダーは次のようになります。

それは完全にうまくいきます。しかし、私を困惑させているのは、文字列の繰り返しを避ける My\Cool\Project\Module\Fooエレガントな方法があるかどうかです。ここでの潜在的な問題は、手動で繰り返す必要があるため、言語機能を効率的に使用することで通常は防止できる/防止できるタイプミスやエラーにつながる可能性があることです。したがって、上記のコードを次のように書き直す方法があるかどうか疑問に思っています。

また

または似たようなもの。

0 投票する
1 に答える
1150 参照

php - phpspec は、psr-4 名前空間の仕様ごとに間違ったフォルダーにファイルを作成します

複雑すぎるため、以前の形式の質問を破棄しました。これが新しいバージョンです。

psr-4 形式のプロジェクトで phpspec を使用したいと考えています。

テストプロジェクトをセットアップしようとした方法は次のとおりです。

  1. プロジェクト用の新しいフォルダーを作成しました:

    /li>
  2. 新しいcomposer.jsonファイルを作成し、phpspec を要求します。

    /li>

私のcomposer.jsonファイルを作成します:

  1. composer.jsonファイルの autoload プロパティに psr-4 名前空間を追加します。

    /li>
  2. 次に、自動ロードをダンプして、名前空間がロードされていることを確認します。composer dumpautoload

  3. その後phpspec.yml、名前空間を phpspec に記述するために my を作成します。

    /li>
  4. 次に、構築を開始するクラスについて説明します。

    /li>

ここで最初の問題にぶつかります。コマンドでAcme 名前空間を指定してもdescribe、spec は名前空間に一致するフォルダーに配置されません。

名前空間仕様が正しくない

それが作成するクラスは正しく名前空間化されていますが:

次に、テストを実行してTDD-ingを開始しようとすると。

それは私のためにクラスを作成することを提案し、私はそれを許可しました. そこから、2 番目の問題が発生します。エラーメッセージが表示されます:

[PhpSpec\Process\Prerequisites\PrerequisiteFailedException] タイプ Acme\Markdown が生成されましたが、読み込めませんでした。オートローダーを構成する必要がありますか?

ここに画像の説明を入力

そして、それが作成するクラスは、その名前空間フォルダーにはありません:

不適切な名前空間クラス

それが作成するクラスも正しく名前空間化されます。

私はドキュメントに目を通しましたが、何が間違っているのかわかりません。助言がありますか?

0 投票する
1 に答える
6553 参照

php - laravel 5でアプリのフォルダ名を変更する方法

メインフォルダー [app] をlaravel 5の作成者名に変更したいのですが、オートローダーやコンポーザーで何も変更せずにそれを行うにはどうすればよいですか?

0 投票する
1 に答える
487 参照

php - Composerを使用したPHP psr-4 Class not Foundエラー

「wamp-server」でphpを使用してMVCの概念を実行しようとしています

ローカル ディレクトリには、alto-router パッケージと routes.php ファイルを使用した基本的なルーティング用の index.php ページがあります。

フォルダ

composer.json ファイルは次のとおりです。

PageController.php は

acme ディレクトリの Test.php は次のとおりです。

そして、ビューディレクトリのtest.phpは上にあります.そして、PageController.phpでコメントされた2行を削除すると動作します

しかし、この行にはエラーがあります:

クラス 'Acme\Testing\Test' が見つかりません..

0 投票する
1 に答える
348 参照

php - js コンポーネントは psr4 を自動ロードします

私の Composer.json の autoload セクションは次のとおりです

これは理にかなっていますか?

0 投票する
2 に答える
2774 参照

php - PHP 名前空間クラスの命名規則

現在、PSR-2 と PSR-4 をフォローしています。いくつかのクラスに名前を付けようとすると、小さなジレンマに陥ります。これが例です。

ベース REST クライアント があり\Vendor\RestClient\AbstractClientます。この抽象クライアントの 2 つの実装があります。

  • \Vendor\GoogleClient\GoogleClient
  • \Vendor\GithubClient\GithubClient

名前空間がすでにドメインを指定しているため、クライアント クラスの命名は冗長ですか? 代わりにクラスに名前を付ける必要があります:

  • \Vendor\GoogleClient\Client
  • \Vendor\GithubClient\Client

これは、クライアント コードが常に次のようなものを使用することを意味します。

これは、以下よりも少し冗長です。

しかし、最初のオプションでは、use ステートメントを変更するだけで実装を簡単に交換できます。

PSR4 では、と の接尾辞と接頭辞をそれぞれ付ける必要があることInterfacesを指定していますが、ドメイン固有の接頭辞/接尾辞については何も述べていません。意見や提案はありますか?AbstractClassesInterfaceAbstract

0 投票する
1 に答える
1594 参照

php - Sublime 3 PSR4 プラグイン

Sublime 3 が PSR4 設定を自動的に行うためのプラグインはありますか?

現在かなり古く、PSR の更新が必要なサードパーティ製ライブラリを使用しています。

PHPStormを使用してこのようなことができると聞きました

0 投票する
2 に答える
4513 参照

php - codeigniter 3 名前空間の問題

私は codeigniter 3 に取り組んでいます。composer psr-4 autoload を使用しています。composer configを次のように有効にします $config['composer_autoload'] = FCPATH."vendor/autoload.php";

そして私の composer.json autoload として

次のような抽象コントローラーがありController.phpます

これは正常に動作します。しかし、主な問題は、コントローラーとして次のように書くときです

動作しません。削除すると、namespace App\Controllers;すべてうまくいきます。主な問題はどこですか?ありがとうございました。

0 投票する
2 に答える
1033 参照

php - psr-4 でファイルをオートロードするときの問題

私は 1 週間以上にわたって psr-4 のオートローディング作業を試みてきましたが、成功していません。

私のファイル構造は次のとおりです。

次のように psr-4 autoload 関数を作成しました。

composer dump-autoload -0 を使用した後、session.php クラス内で名前空間を指定しました。

次に、オートローダーを要求し、use 関数を使用してセッション クラスに次のように名前を付けました。

index.php ページを開くと、

致命的なエラー: クラス 'src\classes\session' が /var/www/test/Project/index.php の 10 行目に見つかりません

ディレクトリ構造 / php は正しいですか? オンラインでさまざまなガイドを試しましたが、うまくいかないようです。