PSR-4 オートローディングと組み合わせて、次のファイル構造を検討してください。
.
├── Foo
│ └── Bar.php
└── Foo.php
クラスBar.php
は拡張することFoo.php
です。それらがすでに深くネストされた名前空間内にあると仮定すると、Bar.php
のヘッダーは次のようになります。
<?php
namespace My\Cool\Project\Module\Foo;
class Bar extends \My\Cool\Project\Module\Foo
{
それは完全にうまくいきます。しかし、私を困惑させているのは、文字列の繰り返しを避ける My\Cool\Project\Module\Foo
エレガントな方法があるかどうかです。ここでの潜在的な問題は、手動で繰り返す必要があるため、言語機能を効率的に使用することで通常は防止できる/防止できるタイプミスやエラーにつながる可能性があることです。したがって、上記のコードを次のように書き直す方法があるかどうか疑問に思っています。
<?php
namespace My\Cool\Project\Module\Foo;
class Bar extends __NAMESPACE__
{
また
<?php
namespace My\Cool\Project\Module\Foo;
class Bar extends ..\Foo
{
または似たようなもの。