I\'m porting a Symfony 1.2 project to Symfony 2.x. I\'m currently running the latest 2.1.0-dev release.
From my old project I have a class called Tools which has som
For a simple case like this the quickest solution is creating a folder (for example Common
) directly under src
and put your class in it.
src
-- Common
-- Tools.php
Tools.php
contains your class with proper namespace, for example
<?php
namespace Common;
class Tools
{
public static function slugify($string)
{
// ...
}
}
Before calling your function do not forget the use
statement
use Common\Tools;
// ...
Tools::slugify('my test string');
If you put your code under src
following the proper folder structure and namespace as above, it will work without touching app/autoload.php
.
Another way is to use the /app/config/autoload.php:
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require __DIR__.'/../vendor/autoload.php';
$loader->add( 'YOURNAMESPACE', __DIR__.'/../vendor/YOURVENDOR/src' );
// intl
if (!function_exists('intl_get_error_code')) {
require_once _DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
Just replace YOURNAMESPACE and YOURVENDOR with your values. Works quite well for me, so far.
You're correct, I stumbled upon the changes in autoload from 2.0 to 2.1. The above code works fine with the latest version, to which I upgraded my project ;-)