I've got the Gender guessing extension of php working on my localhost. http://php.net/manual/en/gender.example.admin.php
Following the instructions in a non-cakephp project all I have to do is:
namespace Gender;
$gender = new Gender;
$name = "Milene";
$country = Gender::FRANCE;
$result = $gender->get($name, $country);
$data = $gender->country($country);
And that produces the correct results. However if I put the above code in a function in cakephp I get an error:
syntax error, unexpected 'Gender' (T_STRING), expecting \\ (T_NS_SEPARATOR)
I think it's something to do with using namespaces but I'm not really sure how that all works (Have been and will continue to google). Can anyone shed any light on how I can use this Gender extension in cakephp?
EDIT Here is the error logs:
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}
And this is the exact code I'm using in my dashboard function:
$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
", $name, $data['country']);
break;
case Gender::IS_MOSTLY_FEMALE:
printf("The name %s is mostly female in %s
", $name, $data['country']);
break;
case Gender::IS_MALE:
printf("The name %s is male in %s
", $name, $data['country']);
break;
case Gender::IS_MOSTLY_MALE:
printf("The name %s is mostly male in %s
", $name, $data['country']);
break;
case Gender::IS_UNISEX_NAME:
printf("The name %s is unisex in %s
", $name, $data['country']);
break;
case Gender::IS_A_COUPLE:
printf("The name %s is both male and female in %s
", $name, $data['country']);
break;
case Gender::NAME_NOT_FOUND:
printf("The name %s was not found for %s
", $name, $data['country']);
break;
case Gender::ERROR_IN_NAME:
echo "There is an error in the given name!
";
break;
default:
echo "An error occurred!
";
break;
}