Hola
Estoy dando vueltas ha mi las librerias de mi proyecto ya que queria hacer un refactoring para pasar mis utilidades al estandar PSR-4 y usarlo con composer, y de esta forma poder usarlo en otros proyectos.
Estructura:
Código:
|proyecto
|vendor
|minombre
|paquete
|src
MiClase.php
composer.json del proyecto
Código:
...
"autoload": {
"psr-4": {
"Minombre\\Paquete\\": "src"
}
...
composer.json de mi paquete
Código:
...
"require": {
"php": ">=5.3.9"
},
"autoload": {
"psr-4": {
"Minombre\\Paquete\\": "minombre/paquete_dir/"
}
...
fcihero de clase:
Código:
<?php
namespace Minombre\Paquete\MiFoo;
class MiFoo {
protected $variable;
public function __construct($variable)
{
$this->variable = $variable;
}
public function getVariable()
{
return $this->variable;
}
Fichero de pruebas. Ya en Phpstomr me ocurre algo curioso. Cuando escribo el conoce en el autocompletado la clase, pero al dar intro la muestra como problema.
test.php
Código:
<?php
use Minombre\Paquete\MiFoo;
// MiFoo::myText(); //tampoco funciona pues muestra error de clase no localizada
$variable = "Hola Mundo";
$request = new MiFoo($variable);
var_dump($request->getVarable());
Ya no se por donde seguir... me encuentro estupido.
Composer si me reconoce mi paquete de echo añadio la estructura en
Código:
|app
|vendor
|composer
autoload_psr4.php
Código:
return array(
...,
'Minombre\\Paquete\\' => array($baseDir . '/minombre/paquete_dir/src'),
);
Un saludo.