На моем локальном хосте есть расширение php для определения пола.http://php.net/manual/en/gender.example.admin.php
Следуя инструкциям в проекте, не связанном с CakePHP, все, что мне нужно сделать, это:
namespace Gender;
$gender = new Gender;
$name = "Milene";
$country = Gender::FRANCE;
$result = $gender->get($name, $country);
$data = $gender->country($country);
И это дает правильные результаты.Однако, если я помещаю приведенный выше код в функцию в cakephp, я получаю сообщение об ошибке:
syntax error, unexpected 'Gender' (T_STRING), expecting \\ (T_NS_SEPARATOR)
Я думаю, что это связано с использованием пространств имен, но я не совсем уверен, как это все работает (были ибудем продолжать гуглить).Может кто-нибудь пролить свет на то, как я могу использовать это расширение Gender в CakePHP?
EDIT Вот журналы ошибок:
Stack Trace:
#0 [internal function]: OwnerAccountsController->dashboard()
#1 /var/www/html/rrv3/lib/Cake/Controller/Controller.php(491): ReflectionMethod->invokeArgs(Object(OwnerAccountsController), Array)
#2 /var/www/html/rrv3/lib/Cake/Routing/Dispatcher.php(193): Controller->invokeAction(Object(CakeRequest))
#3 /var/www/html/rrv3/lib/Cake/Routing/Dispatcher.php(167): Dispatcher->_invoke(Object(OwnerAccountsController), Object(CakeRequest))
#4 /var/www/html/rrv3/app/webroot/index.php(110): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#5 {main}
И это - это точный код, который я использую в своей панели инструментов:
$gender = new \Gender\Gender();
$name = "Milene";
$country = \Gender\Gender::FRANCE;
$result = $gender->get($name, $country);
$data = $gender->country($country);
switch($result) {
case Gender::IS_FEMALE:
printf("The name %s is female in %s\n", $name, $data['country']);
break;
case Gender::IS_MOSTLY_FEMALE:
printf("The name %s is mostly female in %s\n", $name, $data['country']);
break;
case Gender::IS_MALE:
printf("The name %s is male in %s\n", $name, $data['country']);
break;
case Gender::IS_MOSTLY_MALE:
printf("The name %s is mostly male in %s\n", $name, $data['country']);
break;
case Gender::IS_UNISEX_NAME:
printf("The name %s is unisex in %s\n", $name, $data['country']);
break;
case Gender::IS_A_COUPLE:
printf("The name %s is both male and female in %s\n", $name, $data['country']);
break;
case Gender::NAME_NOT_FOUND:
printf("The name %s was not found for %s\n", $name, $data['country']);
break;
case Gender::ERROR_IN_NAME:
echo "There is an error in the given name!\n";
break;
default:
echo "An error occurred!\n";
break;
}