如何在 Symfony 的控制器中使用 PHP 扩展的功能
How to use function of a PHP-extension in a controller of Symfony
我是 Symfony 3.0 的新手,我当前的项目涉及单词分析。更精确地计算一个单词的音节。很难找到满足这种需求的解决方案。过了一会儿,我偶然发现了 PECL 包 "ps" ( http://php.net/manual/de/ref.ps.php ), to be exact the function ps_hyphenate() ( http://php.net/manual/de/function.ps-hyphenate.php )。我成功安装了这个包及其依赖项(pslib 和 inittool)并设法让 ps_hyphenate() 的示例在我的本地环境中工作。
受我幸运的启发,我尝试在我的 symfony 控制器中实现一个方法
private function countSyllables($string) {
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "/../Utils/hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $string);
ps_delete($psdoc);
return count($hyphens);
}
结果我收到了这条错误消息:
Attempted to call function "ps_new" from namespace "AppBundle\Controller".
"No problem"我想。只需转义控制器的特定命名空间即可。
...
$psdoc = \ps_new();
...
这是结果:
Attempted to call function "ps_new" from the global namespace.
怎么了? PECL 扩展不是全局命名空间的一部分吗?怎样才能让这个救生功能发挥作用?
爱情工厂
已解决!
我有两个不同的 php 安装。两者都有不同的 php.ini。我想我只是 运行 这些安装之一,但 symfony 使用旧的 php.ini。所以我的解决方案是将以下内容添加到正确的 php.ini
extension_dir = "/usr/local/php5/extensions/"
extension=ps.so
自己注意:下次也尝试使用 Google 搜索 "syllable php"。我找到了一个非常合适的文本分析包:
https://github.com/DaveChild/Text-Statistics
这个强大的包 returns 您输入的单词的音节数量。
您可以使用 composer 轻松地将它包含到您的 symfony 项目中
$ composer require davechild/text-statistics
爱情工厂
我是 Symfony 3.0 的新手,我当前的项目涉及单词分析。更精确地计算一个单词的音节。很难找到满足这种需求的解决方案。过了一会儿,我偶然发现了 PECL 包 "ps" ( http://php.net/manual/de/ref.ps.php ), to be exact the function ps_hyphenate() ( http://php.net/manual/de/function.ps-hyphenate.php )。我成功安装了这个包及其依赖项(pslib 和 inittool)并设法让 ps_hyphenate() 的示例在我的本地环境中工作。
受我幸运的启发,我尝试在我的 symfony 控制器中实现一个方法
private function countSyllables($string) {
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "/../Utils/hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $string);
ps_delete($psdoc);
return count($hyphens);
}
结果我收到了这条错误消息:
Attempted to call function "ps_new" from namespace "AppBundle\Controller".
"No problem"我想。只需转义控制器的特定命名空间即可。
...
$psdoc = \ps_new();
...
这是结果:
Attempted to call function "ps_new" from the global namespace.
怎么了? PECL 扩展不是全局命名空间的一部分吗?怎样才能让这个救生功能发挥作用?
爱情工厂
已解决!
我有两个不同的 php 安装。两者都有不同的 php.ini。我想我只是 运行 这些安装之一,但 symfony 使用旧的 php.ini。所以我的解决方案是将以下内容添加到正确的 php.ini
extension_dir = "/usr/local/php5/extensions/"
extension=ps.so
自己注意:下次也尝试使用 Google 搜索 "syllable php"。我找到了一个非常合适的文本分析包:
https://github.com/DaveChild/Text-Statistics
这个强大的包 returns 您输入的单词的音节数量。
您可以使用 composer 轻松地将它包含到您的 symfony 项目中
$ composer require davechild/text-statistics
爱情工厂