ágil utilizando el framework Symfony 3 y el motor de base de datos Oracle. Como instalar y configurar bundles que automatizan diferentes tareas en nuestra aplicación y harán nuestra vida más fácil.
de los frameworks más potentes para PHP. Su filosofía de desarrollo basado en las mejores prácticas con una comunidad de desarrolladores bastante grande a generado un mayor interés y demanda a nivel mundial.
compañías a nivel mundial gracias a su robusta infraestructura y estabilidad absoluta que le permite a las empresas proteger su recurso más valioso: la información.
o superior. Asegúrate de disponer de una versión actualizada de PHP correctamente. Gestor de paquetes utilizado por todas las aplicaciones PHP modernas, incluyendo Symfony. Composer es imprescindible para cualquier programador PHP, ya que permite instalar, actualizar y desinstalar librerías, paquetes y plugins, normalmente llamadas dependencias.
cuenta con un plugin bastante potente que automatizará en gran medida nuestras tareas más comunes en el código. Poderosa herramienta de gestión y diseño de bases de datos. Con una interfaz gráfica intuitiva para que el usuario administre de forma fácil sus bases de datos además de contar con aplicación para celular. Navicat
de datos Oracle. Fuente Instalación: http://www.oracle.com/technetwork/es/arti cles/dsl/instalacion-php-con-instant-client -2106535-esa.html Librería OCI8
de este poderoso Framework es construyendo una aplicación real, por tal motivo nos daremos a la tarea de contruir una aplicación para manejar los items de venta de una compañía. Con sus respectivas tablas relacionadas y el procedimiento para añadir, visualizar, editar y eliminar información.Todo esto en una interfaz gráfica amigable al usuario.
Instalador de Symfony que simplifica al máximo la creación de nuevas aplicaciones Symfony. sudo mkdir -p /usr/local/bin sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony sudo chmod a+x /usr/local/bin/symfony
Symfony ejecutando un solo comando sencillo: Nos dirigimos al directorio donde queremos instalar nuestra aplicación: cd /var/www/html/ symfony new inventario 3.1 cd inventario/ composer update
en cuenta con Oracle. En nuestro archivo de configuración app/config.php configuramos nuestra driver a utilizar en este caso oci8: driver: oci8 Configuramos el servicio Listener para nuestra conexión: services: my.listener: class: Doctrine\DBAL\Event\Listeners\OracleSessionInit tags: - { name: doctrine.event_listener, event: postConnect }
la base de datos Oracle: parameters: database_host: 172.26.6.5 database_port: null database_name: ORCL database_user: USER database_password: PASSWORD Ubicados en el directorio procedemos a crear el bundle que contendrá nuestra aplicación: php bin/console generate:bundle
herramienta navicat y seleccionamos la conexión oracle, a continuación este script nos permitirá crear un nuevo esquema en nuestra base de datos: CREATE USER "INVENTARIO" PROFILE "DEFAULT" IDENTIFIED BY "INVENTARIO01" DEFAULT TABLESPACE "INVENTARIO" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT DBA TO INVENTARIO; GRANT "CONNECT" TO "INVENTARIO"; GRANT "RESOURCE" TO "INVENTARIO";
TO "INVENTARIO"; GRANT ALTER ANY TABLE TO "INVENTARIO"; GRANT ALTER ANY TRIGGER TO "INVENTARIO"; GRANT CREATE ANY INDEX TO "INVENTARIO"; GRANT CREATE ANY SEQUENCE TO "INVENTARIO"; GRANT CREATE ANY SYNONYM TO "INVENTARIO"; GRANT CREATE ANY TABLE TO "INVENTARIO"; GRANT CREATE ANY TRIGGER TO "INVENTARIO"; GRANT CREATE ANY VIEW TO "INVENTARIO"; GRANT CREATE PROCEDURE TO "INVENTARIO"; GRANT CREATE PUBLIC SYNONYM TO "INVENTARIO"; GRANT CREATE TRIGGER TO "INVENTARIO";
"INVENTARIO"; GRANT DROP ANY INDEX TO "INVENTARIO"; GRANT DROP ANY SEQUENCE TO "INVENTARIO"; GRANT DROP ANY TABLE TO "INVENTARIO"; GRANT DROP ANY TRIGGER TO "INVENTARIO"; GRANT DROP ANY VIEW TO "INVENTARIO"; GRANT INSERT ANY TABLE TO "INVENTARIO"; GRANT QUERY REWRITE TO "INVENTARIO"; GRANT SELECT ANY TABLE TO "INVENTARIO"; GRANT UNLIMITED TABLESPACE TO "INVENTARIO";
En ocasiones necesitamos empezar nuestra aplicación desde un modelo de base de datos existente y Doctrine cuenta con herramientas que harán agíl el proceso de generación de entidades desde la base de datos: Generamos los archivos de metadatos correspondientes con el siguiente comando: php bin/console doctrine:mapping:convert xml ./src/Proyecto/InventarioBundle/Resources/config/doctrine/metadata /orm --from-database --force
a generar las entidades: php app/console doctrine:mapping:import ProyectoInventarioBundle annotation Luego procedemos a crear nuestras entities (Métodos GET Y SET) para nuestras entidades: php app/console doctrine:generate:entities ProyectoInventarioBundle Vamos a la carpeta de entidades de nuestro proyecto src/Proyecto/Inventario/Entity y nos encontramos nuestras entidades.
a una clase decidir cómo comportarse cuando se le trata como un string. Esto para los formularios de la aplicación En la Entidad Categoria.php public function __toString() { return $this->getCategoria(); } En la Entidad Subcategoria.php public function __toString() { return $this->getSubcategoria(); }
sistema de seguridad bastante robusto basado en el componente de seguridad de Symfony con una configuración bastante frexible y rapida que nos permitirá automatizar tareas de como: Registro de nuevos usuarios Configuración de niveles de acceso Habilitar / deshabilitar usuario Asignar roles y grupos Opciones para recordar contraseña Guardar los usuarios en la base de datos Sistema de encriptación de contraseñas
en nuestro archivo de configuración app/config.php framework: translator: ~ Descargamos FOSUserBundle mediante Composer composer require friendsofsymfony/user-bundle "~2.0@dev" En el archivo /app/AppKernel.php Habilitamos el bundle: new FOS\UserBundle\FOSUserBundle(),
de la aplicación: <?php namespace Proyecto\InventarioBundle\Entity; use FOS\UserBundle\Model\User as BaseUser; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="USUARIO") */ class Usuario extends BaseUser { /**
de la aplicación: <?php namespace Proyecto\InventarioBundle\Entity; use FOS\UserBundle\Model\User as BaseUser; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="USUARIO") */ class Usuario extends BaseUser { /**
este es un ejemplo de configuración mínima: security: encoders: FOS\UserBundle\Model\UserInterface: bcrypt role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: ROLE_ADMIN providers: fos_userbundle: id: fos_user.user_provider.username
resource: "@FOSUserBundle/Resources/config/routing/all.xml" Y por último actualizamos nuestra base de datos: new FOS\UserBundle\FOSUserBundle(), Probamos el funcionamiento creando un nuevo usuario con su respectiva contraseña.
utilizaremos el bundle EasyAdmin que permite la creación de backends de forma realmente sencilla y con una interfaz muy amigable al usuario: Manos a la Obra: Descargamos el Bundle Mediante Composer: composer require javiereguiluz/easyadmin-bundle Habilitamos el bundle en nuestro archivo: app/AppKernel.php new JavierEguiluz\Bundle\EasyAdminBundle\EasyAdminBundle(),