使用命名空间与composer和silex

时间:2015-03-23 16:15:36

标签: php namespaces composer-php silex

我尝试用作曲家加载一个类,但找不到该类。

{
    "require": {
        "silex/silex": "~1.2",
        "twig/twig": ">=1.8,<2.0-dev",
        "symfony/twig-bridge": "~2.3",
        "knplabs/knp-menu": "~2.0",
        "symfony/form": "~2.3",
        "symfony/validator": "~2.3",
        "symfony/config": "~2.3",
        "symfony/translation": "~2.3",
        "symfony/locale": "~2.3",
        "symfony/security-csrf": "~2.4",
        "swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev",
        "symfony/security": "~2.6"
    },
    "autoload": {
        "psr-0": {
            "NewDanceStudio\\": "src/"
        }
   }
}

在我的src文件夹中我有这个结构:

  • SRC
    • NewDanceStudio
      • DAO
        • SpikesDAO.php

我的SpikesDAO文件:

<?php

namespace NewDanceStudio\DAO;

class SpikesDAO {
    // class code
}

index.php我的

中:

use NewDanceStudio\DAO\SpikesDAO;

当我想要实现我的冲突时,我发现了一个未找到的错误

$sp = new SpikesDAO();

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不知道它是否有用:

如果我包含没有命名空间的类文件,我可以实现它。

include __DIR__.'/../src/NewDanceStudio/DAO/SpikesDAO.php';
$p = new SpikesDAO();

更新1

错误已经解决,但我不知道为什么。

我已将我的composer.json更改为:

{
    "require": {
        "silex/silex": "~1.2",
        "twig/twig": ">=1.8,<2.0-dev",
        "symfony/twig-bridge": "~2.3",
        "knplabs/knp-menu": "~2.0",
        "symfony/form": "~2.3",
        "symfony/validator": "~2.3",
        "symfony/config": "~2.3",
        "symfony/translation": "~2.3",
        "symfony/locale": "~2.3",
        "symfony/security-csrf": "~2.4",
        "swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev",
        "symfony/security": "~2.6"
    },
    "autoload": {
        "psr-0": {
            "NewDanceStudio": ["src/"]
        }
   }
}