相关疑难解决方法(0)

使用Composer的开发/生产开关时如何正确部署?

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并且updaterequire-dev默认情况下安装了依赖项(!),随意创建一个带有require-dev块的composer.json 并执行composer install重现.

最受欢迎的部署方式是推动作曲家.锁定(保存当前的作曲家设置),然后composer install在生产服务器上执行,这也将安装开发的东西.

安装-dev依赖项的情况下部署此方法的正确方法是什么?

注意:我正在尝试创建一个规范的Q/A,以澄清奇怪的Composer部署.随意编辑这个问题.

php deployment composer-php

159
推荐指数
3
解决办法
12万
查看次数

Symfony 4 启动会话

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)

php symfony symfony4

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

php ×2

composer-php ×1

deployment ×1

symfony ×1

symfony4 ×1