我正在努力在Laravel 4中建立一个有效的 namespace ,在此以及光明的书中,我已经阅读了一些指南。但是我似乎仍然无法弄清楚。我的应用程序设置如下:

app/controllers/itemController
app/services/itemValidator

在我的composer json文件中(每次更改时我都会进行转储-自动加载),我有:

"autoload": {
    "classmap": [
        <usual data...>
        "app/repositories",
        "app/services",
    ],
    "psr-0": {
        "Services": "app/services/"
    }

我的项目 Controller 设置为:
<?php
use Services\ItemValidator;

class ItemsController extends BaseController {

public function store()
{
   $validator = new ItemValidator;
.....etc.....

并且我的ItemsValidator类设置为:
 <?php namespace Services;

 class ItemValidator extends BaseValidator
 {
 ....code....

当到达$validator = new ItemValidator行时,这给了我以下错误:
Class 'Services\ItemValidator' not found

最佳答案

只是为了澄清一下:根据评论,在这种情况下有效的是这样格式化的composer.json:

"autoload": {
    "classmap": [
        <usual data...>
        "app/repositories",
        "app/services",       <---- this is the only entry needed to autoload your services
    ],

那你应该执行
composer dump-autoload

并检查您的类(class)是否出现在文件中
vendor/composer/autoload_namespaces.php

关于php - 在Laravel 4中创建命名空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16984457/

10-12 07:16