Ожидаемый путь к Sluggable строительу в Symfony / Doctrine - PullRequest
1 голос
/ 02 декабря 2010

Нормализация строки по умолчанию (предоставляемая * sluggifier Doctrine_Inflector::urlize()) не подходит для моего проекта, поэтому мне нужно использовать мой собственный алгоритм.

Я настроил свою схему следующим образом:

MyObject:
  actAs:
    Sluggable:
      fields: [name]
      builder: array('TextUtility', 'normalize')
  columns:
    name: string(255)

И я добавил свой служебный класс в папку lib моего проекта (хотя я также пробовал папку lib приложения) в соответствии с некоторыми инструкциями, найденными на другом форуме:

<?php
//lib/TextUtility.class.php

class TextUtility {
    public static function normalize($str) {
        /* ... */

        return $str;
    }
}
?>

Когда я запускаю symfony doctrine:build --all, меня приветствует следующая ошибка:

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'array('TextUtility', 'normalize')' not found or invalid function name in /symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Template/Listener/Sluggable.php on line 171

Я предполагаю, что просто помещаю свою утилиту в неправильное место, и она не загружается при необходимости. Я помещаю это в неправильное место? Документация Доктрины , кажется, не упоминает предмет, если я просто смотрю не на ту страницу.

1 Ответ

2 голосов
/ 02 декабря 2010

массивы в YAML определяются другим способом:

MyObject:
  actAs:
    Sluggable:
      builder: [TextUtility, normalize]
...