Composer可以选择仅在开发时加载多个依赖项,因此这些工具不会安装在生产环境中(在实时服务器上).对于仅在开发中有意义的脚本(如测试,伪数据工具,调试器等),这(理论上)非常方便.
要做的就是require-dev使用dev中需要的工具添加一个额外的块:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
Run Code Online (Sandbox Code Playgroud)
然后(理论上)通过加载这些依赖
composer install --dev
Run Code Online (Sandbox Code Playgroud)
Composer已经改变了2013年的行为,install并且update在require-dev默认情况下安装了依赖项(!),随意创建一个带有require-dev块的composer.json 并执行composer install重现.
最受欢迎的部署方式是推动作曲家.锁定(保存当前的作曲家设置),然后composer install在生产服务器上执行,这也将安装开发的东西.
在不安装-dev依赖项的情况下部署此方法的正确方法是什么?
注意:我正在尝试创建一个规范的Q/A,以澄清奇怪的Composer部署.随意编辑这个问题.
symfony 新手,我正在尝试开始我的第一个会话
这是我的整个代码位于public/php/session.php:
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
$session = new Session();
$session->start();
Run Code Online (Sandbox Code Playgroud)
我收到错误Uncaught Error: Class 'Symfony\Component\HttpFoundation\Session\Session' not found
phpstorm没有报错,我需要安装模块吗?我尝试过composer require session,但不起作用
handler_id: ~我还尝试了symfony doc 方法config/packages/framework.yaml
使用此方法,不会出现错误消息,但也不会出现会话 cookie
这是我的控制器:
class HomeController extends AbstractController {
// start session
public function index(SessionInterface $session) {
$session->set('foo', 'bar');
$session->get('foo');
}
/**
* @Route("/", name="home")
*/
public function homepage(){
return $this->render('home.html.twig');
}
}
Run Code Online (Sandbox Code Playgroud)