Я перехожу к руководству Doctrine's Getting Started и застрял в начале из-за «Class '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());
Как написано в руководстве, у меня есть класс Product в каталоге «./src» в моем проекте.
Пожалуйста, помогите мне, потому что я хочу начать использовать Doctrine без Symfony, и я не могу двигаться дальше.
Вот мой 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; } }
Спасибо всем заранее!
Я не вижу, где вы включаете класс Product. Вам нужно написать в верхней части файла
require_once 'patch_to_your_class / Product.php';
или использовать автозагрузчик для классов.
Я только что наткнулся на ваш вопрос сейчас и надеюсь, что вы нашли ответ, но чтобы помочь другим вам нужно убедиться, что вы включили в свой композитор.json следующие
"autoload": { "psr-0": {"": "src/"} }
Или включите его вручную, как @ Сергей Студеникин предложил