2

Doctrine の Getting Started ガイドに進んでいますが、「クラス 'Product' が /var/www/test/product-create.php の 6 行目に見つかりませんでした」という理由で最初から行き詰っています。

<?php
require_once 'bootstrap.php';

$newProductName = $argv[1];

>>>>> $product = new Product();
$product->setName($newProductName);

$entityManager->persist($product);
$entityManager->flush();

echo sprintf('Created Product with ID %d' . PHP_EOL, $product->getId());

ガイドに書かれているように、プロジェクトの "./src" ディレクトリの下に Product クラスがあります。

Symfony なしで Doctrine を使い始めたいのですが、これ以上先に進むことができないので、助けてください。

ここに私のbootstrap.phpがあります:

<?php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

use Symfony\Component\Yaml\Parser;

require 'vendor/autoload.php';

$yaml = new Parser();

$parameters = $yaml->parse(file_get_contents(__DIR__ . '/parameters.yml'));
$parameters = $parameters['parameters'];

$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__ . '/src'), $parameters['debug']);

$conn = array
    (
        'host'      => $parameters['database_host'],
        'port'      => $parameters['database_port'],
        'driver'    => $parameters['database_driver'],
        'user'      => $parameters['database_user'],
        'password'  => $parameters['database_password'],
        'dbname'    => $parameters['database_name']
    );

$entityManager = EntityManager::create($conn, $config);

そして、これは私の Product.php です:

<?php
/**
 * @Entity
 * @Table (name="products")
 **/
class Product
{
    /**
     * @Id
     * @Column(type="integer") @GeneratedValue
     **/
    protected $id;

    /**
     * @Column(type="string")
     **/
    protected $name;

    public function getId()
    {
        return $this->id;
    }

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = $name;
    }
}

よろしくお願いします!

4

2 に答える 2

4

今あなたの質問に出くわしました。あなたが答えを見つけてくれることを願っていますが、他の人を助けるために、composer.json に次のものが含まれていることを確認する必要があります。

"autoload": {
    "psr-0": {"": "src/"}
}

または @Сергей Студеникин が提案したように手動で含める

于 2014-03-13T14:33:42.513 に答える
4

製品クラスがどこに含まれているかわかりません。ファイルの先頭に書き込む必要があります

require_once 'patch_to_your_class/Product.php';

またはクラスのオートローダーを使用します。

于 2013-10-03T08:53:39.830 に答える