我已经创建了一个包含symfony 2.3的软件包,但在这种情况下(因为我的老师问我)在src/
文件夹之外,所以我有../symfony/fuentes/NameBundle
而不是../symfony/src/NameBundle
。新行出现在AppKernel中,我的新包出现在routing.yml
上,但是当我尝试启动服务器时
Bundle generation
Generating the bundle code: OK
Checking that the bundle is autoloaded: FAILED
Confirm automatic update of your Kernel [yes]?
Enabling the bundle inside the Kernel: OK
Confirm automatic update of the Routing [yes]?
Importing the bundle routing resource: OK
The command was not able to configure everything automatically.
You must do the following changes manually.
- Edit the composer.json file and register the bundle
namespace in the "autoload" section:
我已经编辑了自动加载并试了很多东西(在这里寻找)但总是出现同样的错误。
C:\Users\Akenateb\Documents\UOC\AULAMENTOR\Symfony>php app/console server:run 127.0.0.1:8080
PHP Fatal error: Class 'AulaMentor\ExdosBundle\AulaMentorExdosBundle' not found in C:\Users\Akenateb\Documents\UOC\AULAMENTOR\Symfony\app\AppKernel.php on line 20
有人能帮助我吗?我真的坚持了下来。 提前谢谢。
答案 0 :(得分:2)
首先,我要感谢那些已经回答的人。如果我们想在“src”之外创建一个捆绑包,我们就必须这样做。文件夹,例如在' fuentes' > ' ..的Symfony / Fuentes的'
如果你创建了' generate:bundle'我建议您接受当生成器询问您是否要创建完整结构时,如果您已创建包含生成器goto步骤3的包。
1-确保您已在AppKernel中注册了捆绑包,并且它存在如下所示的行:
新的YourProject \ NameprojectBundle \ YourProjectNameprojectBundle(),
2-确保您已添加到app / config / routing的路由以及' routing.yml'你有新的捆绑路线,像这样(你可以在你的网址上添加一个前缀,在这种情况下是fuentes):
<强> your_project_name:
资源:&#34; @ YourProjectNameprojectBundle / Resources / config / routing.yml&#34;
前缀:/ fuentes
3-我们编辑了app / autoload.php&#39;我们添加这一行:
<强> $装载机&gt;添加(&#39; YourProject&#39;,真实路径(__ DIR __&#39; /../ Fuentes的&#39;)); 强>
最后,我们可以使用命令行更新资产: php app / console assets:install web
希望对某人有所帮助 最诚挚的问候。
答案 1 :(得分:1)
完全如评论所述:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="optradio" id="optionOne" checked>Option 1</label>
<label class="radio-inline">
<input type="radio" name="optradio" id="optiontwo">Option 2</label>
</div>
</div>
<div class="form-group option-div" id="optionOneDiv">
<label class="control-label col-sm-3">Account Number: <sup class="req">*</sup>
</label>
<div class="col-md-6">
<input class="form-control" type="text" name="optionOne" id="optionOne">
<span class="glyphicon glyphicon-ok form-control-feedback correct"></span>
</div>
</div>
<div class="form-group option-div" id="optiontwoDiv">
<label class="control-label col-sm-3">Credit Card: <sup class="req">*</sup>
</label>
<div class="col-md-6">
<input class="form-control" type="text" name="optionTwo" id="optionTwo">
<span class="glyphicon glyphicon-ok form-control-feedback correct"></span>
</div>
</div>
使用PSR约定自动加载Edit the composer.json file and register the bundle namespace in the "autoload" section
文件夹。如果在src文件夹之外设置类,则必须同时声明它们。
答案 2 :(得分:0)
在composer.json
文件中,您可以在autoload
部分添加其他元素。以下是我认为适用于您的用例的示例:
"autoload": {
"psr-0": {
"NameBundle\\": "fuentes/",
"": "src/"
}
},
答案 3 :(得分:0)
当我们不想搞乱composer.json文件时,以下是如何在Symfony项目之外添加另一个包。
两个第一点与Michael J.的答案相同。现在到第3点:
说,我们需要添加一个驻留在另一个项目中的 OurCompany / SomeBundle ,其相对路径是 ../../ OtherProject / src / OurCompany / SomeBundle 到 CurrentProject / app dir。
因此我们以这种方式将此捆绑包添加到CurrentProject应用程序:
$loader->add('OurCompany\\SomeBundle', realpath(__DIR__.'/../../OtherProject/src'));
请注意应该如何使用斜杠和反斜杠(最后剩下的/或\并不重要,它足够聪明,可以搞清楚)。
对于要加载的整个命名空间(CurrentProject中可用的其他项目中的所有包名称空间):
$loader->add('OurCompany', realpath(__DIR__.'/../../OtherProject/src'));