Php 代码可以从控制台工作,但不能';不工作的方法

Php 代码可以从控制台工作,但不能';不工作的方法,php,sqlite,doctrine-orm,Php,Sqlite,Doctrine Orm,我使用条令2创建了sqlite数据库。当我从控制台运行create_product.php时,它工作正常,但我想从php类创建产品。所以我用create_product.php代码创建了这个方法,并包含bootstrap.php,但我遇到了一个问题:未定义的变量:entityManager 创建_product.php 和php类文件: <?php namespace app\monitor; use Product; require_once dirname(dirname(dir

我使用条令2创建了sqlite数据库。当我从控制台运行create_product.php时,它工作正常,但我想从php类创建产品。所以我用create_product.php代码创建了这个方法,并包含bootstrap.php,但我遇到了一个问题:未定义的变量:entityManager

创建_product.php


和php类文件:

<?php
namespace app\monitor;
use Product;

require_once dirname(dirname(dirname(__DIR__))) . "/bootstrap.php";

class Service {

public function work() {
       $name = 'name';
       $this->saveProduct($name);   

public function saveProduct($name) {

        $date = date("d.m.Y");
        $time = time();

        $entity = new Product();
        $entity->setName($name);
        $entity->setSaveTime($time);
        $entity->setSaveDate($date);

        $entityManager->persist($entity);
        $entityManager->flush();
    }
}

首先,不能在body类内调用方法(不能在其他方法中调用)。其次,$entityManager将为null(它不是一个saveProduct方法变量)。

OK,但我如何使用saveProduct方法将$entity保存在数据库中?从Dependency注入容器获取一个实体管理器(如果您使用的是类似symfony的应用程序)。我不知道没有它怎么过。可能尝试在方法saveProduct中包含引导,但这是一种非常肮脏的方式:)
<?php
namespace app\monitor;
use Product;

require_once dirname(dirname(dirname(__DIR__))) . "/bootstrap.php";

class Service {

public function work() {
       $name = 'name';
       $this->saveProduct($name);   

public function saveProduct($name) {

        $date = date("d.m.Y");
        $time = time();

        $entity = new Product();
        $entity->setName($name);
        $entity->setSaveTime($time);
        $entity->setSaveDate($date);

        $entityManager->persist($entity);
        $entityManager->flush();
    }
}