問題タブ [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.
php - 名前空間に一致する名前でクラスを拡張する
PSR-4 オートローディングと組み合わせて、次のファイル構造を検討してください。
クラスBar.php
は拡張することFoo.php
です。それらがすでに深くネストされた名前空間内にあると仮定すると、Bar.php
のヘッダーは次のようになります。
それは完全にうまくいきます。しかし、私を困惑させているのは、文字列の繰り返しを避ける My\Cool\Project\Module\Foo
エレガントな方法があるかどうかです。ここでの潜在的な問題は、手動で繰り返す必要があるため、言語機能を効率的に使用することで通常は防止できる/防止できるタイプミスやエラーにつながる可能性があることです。したがって、上記のコードを次のように書き直す方法があるかどうか疑問に思っています。
また
または似たようなもの。
php - phpspec は、psr-4 名前空間の仕様ごとに間違ったフォルダーにファイルを作成します
複雑すぎるため、以前の形式の質問を破棄しました。これが新しいバージョンです。
psr-4 形式のプロジェクトで phpspec を使用したいと考えています。
テストプロジェクトをセットアップしようとした方法は次のとおりです。
プロジェクト用の新しいフォルダーを作成しました:
/li>新しい
/li>composer.json
ファイルを作成し、phpspec を要求します。
私のcomposer.json
ファイルを作成します:
/li>composer.json
ファイルの autoload プロパティに psr-4 名前空間を追加します。次に、自動ロードをダンプして、名前空間がロードされていることを確認します。
composer dumpautoload
その後
/li>phpspec.yml
、名前空間を phpspec に記述するために my を作成します。次に、構築を開始するクラスについて説明します。
/li>
ここで最初の問題にぶつかります。コマンドでAcme 名前空間を指定してもdescribe
、spec は名前空間に一致するフォルダーに配置されません。
それが作成するクラスは正しく名前空間化されていますが:
次に、テストを実行してTDD-ingを開始しようとすると。
それは私のためにクラスを作成することを提案し、私はそれを許可しました. そこから、2 番目の問題が発生します。エラーメッセージが表示されます:
[PhpSpec\Process\Prerequisites\PrerequisiteFailedException] タイプ Acme\Markdown が生成されましたが、読み込めませんでした。オートローダーを構成する必要がありますか?
そして、それが作成するクラスは、その名前空間フォルダーにはありません:
それが作成するクラスも正しく名前空間化されます。
私はドキュメントに目を通しましたが、何が間違っているのかわかりません。助言がありますか?
php - laravel 5でアプリのフォルダ名を変更する方法
メインフォルダー [app] をlaravel 5の作成者名に変更したいのですが、オートローダーやコンポーザーで何も変更せずにそれを行うにはどうすればよいですか?
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' が見つかりません..
php - js コンポーネントは psr4 を自動ロードします
私の Composer.json の autoload セクションは次のとおりです
これは理にかなっていますか?
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
を指定していますが、ドメイン固有の接頭辞/接尾辞については何も述べていません。意見や提案はありますか?AbstractClasses
Interface
Abstract
php - Sublime 3 PSR4 プラグイン
Sublime 3 が PSR4 設定を自動的に行うためのプラグインはありますか?
現在かなり古く、PSR の更新が必要なサードパーティ製ライブラリを使用しています。
PHPStormを使用してこのようなことができると聞きました
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;
すべてうまくいきます。主な問題はどこですか?ありがとうございました。
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 は正しいですか? オンラインでさまざまなガイドを試しましたが、うまくいかないようです。