Mostrando entradas con la etiqueta Patterns PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta Patterns PHP. Mostrar todas las entradas

2020-10-12

Utilizar NAMESPACED en CakePHP 2.x y composer para proyecto viejo..

Quizas tenes proyectos viejos que fueron creado en CakePHP 2.x  y siguen funcionando y que por tiempo o costos no pudiste actualizar a CakePHP 3.x o 4.x como es mi caso. 


Con estos pasos vas a poder utilizar NAMESPACED  sin que de error, siempre y cuando tengas configurado tu sistema (CakePHP 2.x con Composer y PHP 5 >= 5.3.0) para poder crear código más robustos y aplicar mejores prácticas con patrones de diseños y poder hacer un mantenimiento más simple del sistema.


Paso 1): Modificar tu archivo composer.json agregando algo similar a esto.

"autoload": {
  "psr-4": {
    "Mylib\\": "app/Lib/Mylib/"
  }
}

Paso 2): Ejecuta el siguiente comando donde esta el archivos composer.json que modificaste.

composer dump-autoload

Paso 3): Crear tu class dentro de "app/Lib/Mylib" o SubCarpeta según el caso y como esta en el ejemplo.

<?php

// app/Lib/Mylib/Error/MyErrorHandler.php
namespace Mylib\Error;

class MyErrorHandler
{
    ........
}

Paso 4): Ejemplo de como utilizarlo dentro de un controller

<?php

App::uses('AppController', 'Controller');

use Mylib\Error\MyErrorHandler;

class UsersController extends AppController

{

    public $components = array('Paginator', 'Session', 'Flash');

    public function index()

    {

        $testDemo = new MyErrorHandler() ;
        $testDemo ->myTest1(__('Error EOM ;-]')) ;
        var_dump($testDemo ) ;

        $this->set('clientesReferidosNiveles', $this->Paginator->paginate());

    }

.....
.....
.....


Listo eso es todo para poder utilizar tus class y el load automático con  NAMESPACED.

Saludos y espero que le sea útil ;-)

2010-03-25

Lista de Patterns - Patrones de diseño para trabajar con PHP

Navegando en Internet me encontró con este sitio web donde hay un lista grande de los principales patrones de diseño, para crear un código mas robusto, profesional y de mejor calidad, si sabes utilizar de manera correcta los patrones de diseños.

Lista de algunos de los Patterns

Abstract Factory

Adaptor

Application Controller

Command

Composite

Data Access Object

Data Mapper

Data Transfer Object

Decorator

Entity Renderer

Facade

Factory

Front Controller

Identity Map

Interpreter

Iterator

Lazy Initialization

Observer

Page Controller

Prototype

Proxy

Registry

Row Data Gateway

Singleton

Strategy

Table Data Gateway

Template View

Transfer Object

Transform View

Unit of Work

Value Object

View Helper

Visitor



PHP5 Patron Sigleton::

final class Singleton
{

protected static $_instance;

private function __construct() # we don't permit an explicit call of the constructor! (like $v = new Singleton())
{ }

private function __clone() # we don't permit cloning the singleton (like $x = clone $v)
{ }

public static function getInstance()
{
if( self::$_instance === NULL ) {
self::$_instance = new self();
}
return self::$_instance;
}
}

$instance = Singleton::getInstance();

Mas Información sobre el sito: Link
Otro sitio sobre Patterns en Ingles: Link
Otro sitio también interesante de IBM sobre patrones PHP (Ingles) : Link
Otro sitio también en Ingles: Link
Otro sitio también : LINK Sigleton
Otro Sitio Wiki con varios lenguajes de programación con singleton Link
Otro Link SingletonPHP5 Wiki Tambien Link


Videotutorial: Patrones de diseño en PHP – Singleton Pattern




Videotutorial: Patrones de diseño en PHP – Factory Pattern