命名空间和使用方面我遇到了一些麻烦.
我收到此错误:"找不到特征'Billing\BillingInterface'"
这些是我的Laravel应用程序中的文件:
Billing.php
namespace Billing\BillingInterface;
interface BillingInterface
{
public function charge($data);
public function subscribe($data);
public function cancel($data);
public function resume($data);
}
Run Code Online (Sandbox Code Playgroud)
PaymentController.php
use Billing\BillingInterface;
class PaymentsController extends BaseController
{
use BillingInterface;
public function __construct(BillingPlatform $BillingProvider)
{
$this->BillingProvider = $BillingProvider;
}
}
Run Code Online (Sandbox Code Playgroud)
如何正确使用use和namespace?
BillingInterface是interface不是trait.因此,它找不到不存在的特征
您BillingInterface还在名称空间中调用了一个接口Billing\BillingInterface,该接口的完全限定名称是:\Billing\BillingInterface\BillingInterface
也许你的意思是
use Billing\BillingInterface\BillingInterface;
// I am not sure what namespace BillingPlatform is in,
// just assuming it's in Billing.
use Billing\BillingPlatform;
class PaymentsController extends BaseController implements BillingInterface
{
public function __construct(BillingPlatform $BillingProvider)
{
$this->BillingProvider = $BillingProvider;
}
// Implement BillingInterface methods
}
Run Code Online (Sandbox Code Playgroud)
或者将其用作特征.
namespace Billing;
trait BillingTrait
{
public function charge($data) { /* ... */ }
public function subscribe($data) { /* ... */ }
public function cancel($data) { /* ... */ }
public function resume($data) { /* ... */ }
}
Run Code Online (Sandbox Code Playgroud)
再次修改PaymentsController,但具有完全限定名称.
class PaymentsController extends BaseController
{
// use the fully qualified name
use \Billing\BillingTrait;
// I am not sure what namespace BillingPlatform is in,
// just assuming it's in billing.
public function __construct(
\Billing\BillingPlatform $BillingProvider
) {
$this->BillingProvider = $BillingProvider;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7296 次 |
| 最近记录: |