Установка продвинуть поведения с композитором


В настоящее время я разрабатываю Windows с WampServer и имею Composer рабочий (с OpenSSL), С Propel установлен без проблем, и все, кажется, работает нормально. Однако теперь мой проект должен использовать Equal Nest Behaviour найденный здесь.

Я думал, что это позволит мне использовать поведение движителя. В моем schema.xml у меня есть следующий фрагмент:
<table name="friend">
  <behavior name="equal_nest">
    <parameter name="parent_table" value="user" />
  </behavior>
</table>

Но когда я запускаю propel-gen sql, я получаю ошибку:

[phingcall] Unknown behavior "equal_nest"; make sure you configured the propel.be
havior.equal_nest.class setting in your build.properties

В документации говорится:

Тогда, если вы не используйте Composer или автозагрузчик в своем приложении, добавьте в сборку следующую конфигурацию.свойства или пропеллер.ini-файл:

Заставляя меня предположить, что мне не нужно было вставлять сборку.файл свойств. Однако, вводя его, я получаю следующую ошибку:

PHP Fatal error:  Class 'EqualNestParentBehavior' not found in C:homemovesleag
ue.comvendorcraftyshadowpropel-equalnest-behaviorsrcEqualNestBehavior.php o
n line 74

Я не был уверен, что это как-то связано с автоматической загрузкой не работает или пространства имен (моя схема имеет пространство имен, но я получаю ту же ошибку при удалении его тоже).

Мой composer.json файл выглядит вот так:

{
    "require": {
        "craftyshadow/propel-equalnest-behavior": "dev-master"
    }
}
Примечание: у меня действительно был пропеллер, но поскольку самое равное поведение требует его самого, я просто позволяю ему делать свою работу.

Итак, как правильно использовать поведение Propel с Composer, и если я делаю это правильно, почему я вижу ошибки выше?

Обновления

Я добавил эту строку в начало EqualNestBehaviour.php:

include __DIR__ . DIRECTORY_SEPARATOR . 'EqualNestParentBehavior.php';

И SQL, кажется, генерируется правильно без ошибок. Однако изменение этого файла не происходит. покажись мне умным! Может быть, это проблема с автоматической загрузкой? Есть ли что-нибудь, что я могу сделать, чтобы проверить это?

Я могу подтвердить, что использование Equal Nest Behaviour в моем фактическом коде Propel работает нормально, используя функции, такие как addFriends() - это с вышеупомянутыми изменениями все еще на месте.

В моем файле autoload_namespaces.php есть следующее:

<?php

// autoload_namespaces.php generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
);
1 20

1 ответ:

Это проблема с автоматической загрузкой.

Пожалуйста, проверьте, что у вас есть

propel.behavior.equal_nest.class = vendor.craftyshadow.propel-equalnest-behavior.src.EqualNestBehavior

В вашей сборке.свойства (для пропеллера).

Пожалуйста, убедитесь, что созданный композитором файл autoloader включен в процесс загрузки вашего приложения. Композитор генерирует "вендор / автопогрузчик.PHP-файл. Если вы включите его, то получите автоматическую загрузку бесплатно. И все, что установлено композитором, будет найдено автоматически.

require 'vendor/autoload.php';