Skip to content

Commit

Permalink
switch to PSR-4
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefano Torresi committed Jan 22, 2014
1 parent b31dd0d commit 2d4e69d
Show file tree
Hide file tree
Showing 50 changed files with 99 additions and 61 deletions.
56 changes: 29 additions & 27 deletions autoload_classmap.php
@@ -1,31 +1,33 @@
<?php
// Generated by ZF2's ./bin/classmap_generator.php
return array(
'MyBase\Controller\AbstractConsoleController' => __DIR__ . '/src/MyBase/Controller/AbstractConsoleController.php',
'MyBase\Filter\Ellipsis' => __DIR__ . '/src/MyBase/Filter/Ellipsis.php',
'MyBase\Filter\FileArrayToString' => __DIR__ . '/src/MyBase/Filter/FileArrayToString.php',
'MyBase\ServiceManager\AsseticSassFilterFactory' => __DIR__ . '/src/MyBase/ServiceManager/AsseticSassFilterFactory.php',
'MyBase\Mail\Transport\Factory' => __DIR__ . '/src/MyBase/Mail/Transport/Factory.php',
'MyBase\Mail\Transport\Exception\DomainException' => __DIR__ . '/src/MyBase/Mail/Transport/Exception/DomainException.php',
'MyBase\Form\Element\CountrySelect' => __DIR__ . '/src/MyBase/Form/Element/CountrySelect.php',
'MyBase\Doctrine\EntityMapper' => __DIR__ . '/src/MyBase/Doctrine/EntityMapper.php',
'MyBase\Doctrine\EntityManagerAwareInitializer' => __DIR__ . '/src/MyBase/Doctrine/EntityManagerAwareInitializer.php',
'MyBase\Doctrine\EntityManagerAwareInterface' => __DIR__ . '/src/MyBase/Doctrine/EntityManagerAwareInterface.php',
'MyBase\Doctrine\EntityManagerAwareTrait' => __DIR__ . '/src/MyBase/Doctrine/EntityManagerAwareTrait.php',
'MyBase\Entity\Entity' => __DIR__ . '/src/MyBase/Entity/Entity.php',
'MyBase\DataMapper\MapperEvent' => __DIR__ . '/src/MyBase/DataMapper/MapperEvent.php',
'MyBase\DataMapper\MapperAwareTrait' => __DIR__ . '/src/MyBase/DataMapper/MapperAwareTrait.php',
'MyBase\DataMapper\MapperInterface' => __DIR__ . '/src/MyBase/DataMapper/MapperInterface.php',
'MyBase\DataMapper\MapperAwareInterface' => __DIR__ . '/src/MyBase/DataMapper/MapperAwareInterface.php',
'MyBase\Util\Serializor' => __DIR__ . '/src/MyBase/Util/Serializor.php',
'MyBase\Captcha\ImagickCaptcha' => __DIR__ . '/src/MyBase/Captcha/ImagickCaptcha.php',
'MyBase\AbstractModule' => __DIR__ . '/src/MyBase/AbstractModule.php',
'MyBase\Module' => __DIR__ . '/src/MyBase/Module.php',
'MyBase\View\Helper\DatePatternFormat' => __DIR__ . '/src/MyBase/View/Helper/DatePatternFormat.php',
'MyBase\View\Helper\BootstrapFormFile' => __DIR__ . '/src/MyBase/View/Helper/BootstrapFormFile.php',
'MyBase\View\Helper\ImageResize' => __DIR__ . '/src/MyBase/View/Helper/ImageResize.php',
'MyBase\View\Helper\FormFieldset' => __DIR__ . '/src/MyBase/View/Helper/FormFieldset.php',
'MyBase\View\Helper\AbstractEntityHelper' => __DIR__ . '/src/MyBase/View/Helper/AbstractEntityHelper.php',
'MyBase\View\Helper\TimeAgo' => __DIR__ . '/src/MyBase/View/Helper/TimeAgo.php',
'MyBase\Image\Resizer' => __DIR__ . '/src/MyBase/Image/Resizer.php',
'MyBase\Controller\AbstractConsoleController' => __DIR__ . '/src/Controller/AbstractConsoleController.php',
'MyBase\Filter\Ellipsis' => __DIR__ . '/src/Filter/Ellipsis.php',
'MyBase\Filter\FileArrayToString' => __DIR__ . '/src/Filter/FileArrayToString.php',
'MyBase\ServiceManager\HTMLPurifierFactory' => __DIR__ . '/src/ServiceManager/HTMLPurifierFactory.php',
'MyBase\ServiceManager\AsseticSassFilterFactory' => __DIR__ . '/src/ServiceManager/AsseticSassFilterFactory.php',
'MyBase\Mail\Transport\Factory' => __DIR__ . '/src/Mail/Transport/Factory.php',
'MyBase\Mail\Transport\Exception\DomainException' => __DIR__ . '/src/Mail/Transport/Exception/DomainException.php',
'MyBase\Form\Element\CountrySelect' => __DIR__ . '/src/Form/Element/CountrySelect.php',
'MyBase\Doctrine\EntityMapper' => __DIR__ . '/src/Doctrine/EntityMapper.php',
'MyBase\Doctrine\EntityManagerAwareInitializer' => __DIR__ . '/src/Doctrine/EntityManagerAwareInitializer.php',
'MyBase\Doctrine\EntityManagerAwareInterface' => __DIR__ . '/src/Doctrine/EntityManagerAwareInterface.php',
'MyBase\Doctrine\ObjectManagerAwareTrait' => __DIR__ . '/src/Doctrine/ObjectManagerAwareTrait.php',
'MyBase\Doctrine\EntityManagerAwareTrait' => __DIR__ . '/src/Doctrine/EntityManagerAwareTrait.php',
'MyBase\Entity\Entity' => __DIR__ . '/src/Entity/Entity.php',
'MyBase\DataMapper\MapperEvent' => __DIR__ . '/src/DataMapper/MapperEvent.php',
'MyBase\DataMapper\MapperAwareTrait' => __DIR__ . '/src/DataMapper/MapperAwareTrait.php',
'MyBase\DataMapper\MapperInterface' => __DIR__ . '/src/DataMapper/MapperInterface.php',
'MyBase\DataMapper\MapperAwareInterface' => __DIR__ . '/src/DataMapper/MapperAwareInterface.php',
'MyBase\Util\Serializor' => __DIR__ . '/src/Util/Serializor.php',
'MyBase\Captcha\ImagickCaptcha' => __DIR__ . '/src/Captcha/ImagickCaptcha.php',
'MyBase\AbstractModule' => __DIR__ . '/src/AbstractModule.php',
'MyBase\Module' => __DIR__ . '/src/Module.php',
'MyBase\View\Helper\DatePatternFormat' => __DIR__ . '/src/View/Helper/DatePatternFormat.php',
'MyBase\View\Helper\BootstrapFormFile' => __DIR__ . '/src/View/Helper/BootstrapFormFile.php',
'MyBase\View\Helper\ImageResize' => __DIR__ . '/src/View/Helper/ImageResize.php',
'MyBase\View\Helper\FormFieldset' => __DIR__ . '/src/View/Helper/FormFieldset.php',
'MyBase\View\Helper\AbstractEntityHelper' => __DIR__ . '/src/View/Helper/AbstractEntityHelper.php',
'MyBase\View\Helper\TimeAgo' => __DIR__ . '/src/View/Helper/TimeAgo.php',
'MyBase\Image\Resizer' => __DIR__ . '/src/Image/Resizer.php',
);
5 changes: 3 additions & 2 deletions composer.json
Expand Up @@ -22,8 +22,9 @@
}
},
"autoload" : {
"psr-0" : {
"MyBase" : "src"
"psr-4": {
"MyBase\\": "src/",
"MyBase\\Test\\": "tests/Test"
},
"classmap": [
"./"
Expand Down
55 changes: 46 additions & 9 deletions src/MyBase/AbstractModule.php → src/AbstractModule.php
Expand Up @@ -15,21 +15,55 @@ abstract class AbstractModule implements
Feature\AutoloaderProviderInterface,
Feature\ConfigProviderInterface
{
/**
* @var string
*/
protected $dir;

/**
* @var string
*/
protected $namespace;

/**
* @var int
*/
protected $psr = 0;

public function __construct()
{
$className = get_class($this);
$this->namespace = substr($className, 0, strpos($className, '\\'));

$reflector = new \ReflectionClass($className);
$classDir = dirname($reflector->getFileName());
$baseClassDir = pathinfo($classDir, PATHINFO_BASENAME);

if ($baseClassDir === $this->getNamespace()) {
$this->dir = realpath(dirname(dirname($classDir))); // PSR-0 i.e. src/Namespace/Module.php
} elseif ($baseClassDir === 'src') {
$this->dir = realpath(dirname($classDir)); // PSR-4 i.e. src/Module.php
$this->psr = 4;
} else {
throw new \RuntimeException("Could not detect module root directory. Please either use PSR-0 or PSR-4 structure.");
}
}

/**
* @return string
*/
public function getNamespace()
{
return $this->namespace;
}

/**
* Module root directory
*
* @return string
*/
public function getDir()
{
if (! $this->dir) {
$reflector = new \ReflectionClass(get_class($this));
$classDir = dirname($reflector->getFileName());
$this->dir = realpath($classDir . '/../..'); // assume PSR-0 compliant structure, e.g. src/Namespace/Module.php
}

return $this->dir;
}

Expand All @@ -38,16 +72,19 @@ public function getDir()
*/
public function getAutoloaderConfig()
{
$className = get_class($this);
$namespace = substr($className, 0, strpos($className, '\\'));
$moduleNamespaceDir = $this->getDir() . '/src/';

if ($this->psr == 0) {
$moduleNamespaceDir .= $this->getNamespace();
}

return [
'Zend\Loader\ClassMapAutoloader' => [
$this->getDir() . '/autoload_classmap.php',
],
'Zend\Loader\StandardAutoloader' => [
'namespaces' => [
$namespace => $this->getDir() . '/src/' . $namespace,
$this->getNamespace() => $moduleNamespaceDir,
],
],
];
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest;
namespace MyBase\Test;

use Composer\Autoload\ClassLoader;
use Zend\ModuleManager\ModuleManager;
Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\Controller;
namespace MyBase\Test\Controller;

use PHPUnit_Framework_TestCase as TestCase;
use Zend\Http\Request as HttpRequest;
Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\Controller\TestAsset;
namespace MyBase\Test\Controller\TestAsset;

use MyBase\Controller\AbstractConsoleController;

Expand Down
Expand Up @@ -5,10 +5,10 @@
* ************************************************
*/

namespace MyBaseTest\Filter;
namespace MyBase\Test\Filter;

use MyBase\Filter\Ellipsis;
use MyBaseTest\Bootstrap;
use MyBase\Test\Bootstrap;
use PHPUnit_Framework_TestCase as TestCase;
use Zend\Stdlib\StringUtils;

Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\Filter;
namespace MyBase\Test\Filter;

use MyBase\Filter\FileArrayToString;
use PHPUnit_Framework_TestCase;
Expand Down Expand Up @@ -72,7 +72,7 @@ public function valuesProvider()
[
new TestAsset\StringConvertible(),
[],
'MyBaseTest\Filter\TestAsset\StringConvertible'
'MyBase\Test\Filter\TestAsset\StringConvertible'
],
];
}
Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\Filter\TestAsset;
namespace MyBase\Test\Filter\TestAsset;

class StringConvertible
{
Expand Down
Expand Up @@ -6,7 +6,7 @@
* ************************************************
*/

namespace MyBaseTest\Image;
namespace MyBase\Test\Image;

use Imagick;
use PHPUnit_Framework_TestCase;
Expand Down
File renamed without changes.
File renamed without changes
File renamed without changes
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\ServiceManager;
namespace MyBase\Test\ServiceManager;

use MyBase\ServiceManager\AsseticSassFilterFactory;
use PHPUnit_Framework_Assert;
Expand Down
Expand Up @@ -5,11 +5,11 @@
* ************************************************
*/

namespace MyBaseTest\ServiceManager;
namespace MyBase\Test\ServiceManager;

use HTMLPurifier;
use MyBase\ServiceManager\HTMLPurifierFactory;
use MyBaseTest\Bootstrap;
use MyBase\Test\Bootstrap;
use PHPUnit_Framework_TestCase as TestCase;
use Zend\Stdlib\ArrayUtils;

Expand Down
Expand Up @@ -6,7 +6,7 @@
* ************************************************
*/

namespace MyBaseTest\Util;
namespace MyBase\Test\Util;

use PHPUnit_Framework_TestCase;
use MyBase\Util\Serializor;
Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\Util\TestAsset;
namespace MyBase\Test\Util\TestAsset;

class Bar
{
Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\Util\TestAsset;
namespace MyBase\Test\Util\TestAsset;

class Foo
{
Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\View\Helper;
namespace MyBase\Test\View\Helper;

use MyBase\View\Helper\DatePatternFormat;
use ZendTest\I18n\View\Helper\DateFormatTest;
Expand Down
Expand Up @@ -5,7 +5,7 @@
* ************************************************
*/

namespace MyBaseTest\View\Helper;
namespace MyBase\Test\View\Helper;

use MyBase\Image\Resizer;
use MyBase\View\Helper\ImageResize;
Expand Down
6 changes: 2 additions & 4 deletions tests/init_bootstrap.php
Expand Up @@ -5,11 +5,9 @@
* ************************************************
*/

namespace MyBaseTest;

error_reporting(E_ALL | E_STRICT);
chdir(__DIR__);

require __DIR__ . '/' . __NAMESPACE__ . '/Bootstrap.php';
require __DIR__ . '/Test/Bootstrap.php';

Bootstrap::init();
MyBase\Test\Bootstrap::init();
4 changes: 2 additions & 2 deletions tests/phpunit.xml.dist
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="init_bootstrap.php" colors="true">
<testsuite name="MyBase Test Suite">
<directory>./MyBaseTest</directory>
<testsuite>
<directory>./Test</directory>
</testsuite>

<filter>
Expand Down

0 comments on commit 2d4e69d

Please sign in to comment.