默认的字符串规范化(由Doctrine_Inflector::urlize()
“sluggifier”提供)不适合我的项目,所以我需要使用我自己的算法。
我将架构设置如下:
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
我假设我只是将我的实用程序放在错误的位置,并且在需要时没有加载它。我把它放错地方了吗?Doctrine 的文档似乎没有提到这个主题,除非我只是看错了页面。