Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2015, 03:09
abkrim
 
Fecha de Ingreso: julio-2015
Ubicación: Tiznit (Marruecos)
Mensajes: 14
Antigüedad: 9 años, 3 meses
Puntos: 0
Sonrisa Uso de namespaces con PSR-4

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.

Última edición por abkrim; 28/07/2015 a las 03:10 Razón: Visualziación