home

git

Ordenagailuak birziklatu

Software librearen ikastaroa

bash

SYMFONY 2

- mb_strlen: te da la largura de un string - strlen: obtiene la logitud de una cadena - mb_detect_encoding: detecta el encoding de los carácteres - cache:clear: Borrar la cache. Comando de consola. - php app/console generate:doctrine:entities TiendaBundle: genera los getters y setters de los modelos del ORM (doctrine) - php app/console doctrine:generate:entity: Generado automatico de entityes mediante preguntas - php app/console doctrine:database:create : crear base de datos - php app/console doctrine:schema:create : crea el esquema de la base de datos. - php app/console doctrine:schema:update: actualizar el esquema de la base de datos - php app/console doctrine:fixtures:load --purge-with-truncate : cargar fixtures. Tiene que estar guardadas en CiudadBundle/DataFixtures/ORM/Ciudades.php. Se borrarn los datos que habia en la tabla para evitar esto añadir "--append" - php app/console assets:install web: Para que los archivos web de un bundle puedan ser utilizados en el sitio web - php app/console router:debug --env=dev Mira las rutas que tiene reconocidas para el entorno dev - php app/console doctrine:generate:crud Para crear el CRUD de una entity Respuesta a la primera pregunta: UserBundle: User (Bundle: entidad) -> Te genera las funciones en los controlador, vistas de twig y los FormType. - php app/console assetic:dump: hace copia de los assetic te dice si esta on o off el debug - php app/consoloe init:acl: Inicia las bases de datos necesarias para poner ACL y ACE en marcha
 * Funciones interesantes:

SEGURIDAD //saca los datos del usuario logueado $user = $this->get('security.context')->getToken->getUser;

FORM

code format="default prettyprint"  // $_GET parameters $request -> query -> get ( 'name' );

// $_POST parameters $request -> request -> get ( 'name' ); code + Comparativa con codeigniter

Symfony | Codeigniter

entity | model extension | like helper bundle | modulo|

Para ponerla en la marcha hay que poner 4 cosas en el fichero app/config/security.yml: 1. Definir una seccion firewall. Si la URL solicitada coincide con la expresión regular definida en su opción pattern, se activa el mecanismo de autenticación asociado al firewall. Aqui se define el tipo de autentificacion del usuario. Hay 4: 1-2. http_basic y http_digest hacen que el navegador muestre la típica caja en la que se solicita usuario y contraseña. Requiere un provider. 3. x509 se solicita un certificado de tipo X.509 (para el DNI electronico por ejemplo). Requiere un provider. 4. form_login: Muestra una página con un formulario para introducir el usuario y la contraseña.
 * Seguridad:

2. Definir las opciones de autorizacion dentro de access_control. 3. Configurar los proveedores en providers que son los encargados de crear los usuarios de la aplicación. Symfony2 define dos tipos de proveedores: memory (los usuarios se crean en memoria con los datos. incluidos en el propio archivo security.yml) y entity (los usuarios se crean mediante entidades de Doctrine2). 4. Configurar el encodeminiento de las contraseñas. Configura cómo se codifican las contraseñas de los usuarios. Esta configuración es obligatoria para cada proveedor definido en la opción providers

- Definir que se quiere en un documento. (Funcionamiento detallada de la aplicacion). - Wireframes: Un wireframe describe los contenidos de una página sin fijarse en su diseño gráfico. Lo único que importa en un wireframe son los contenidos que se incluyen, su tamaño y su posición. Como el aspecto gráfico es irrelevante en esta fase, los wireframes siempre se diseñan en blanco y negro y con bloques rectangulares de contenidos.
 * Pasos para empezar:

- Definir y programar las entidades (las "SQL" de la base de datos) - Definir cuantas y que bandles vamos a tener. - Definir las rutas.

Instalando Symfony2 sin vendors

1. Accede a http://symfony.com/download y descarga la versión without vendors más reciente disponible.

2. Copia el archivo descargado (Symfony_Standard_2.0.XX.tgz o Symfony_Standard_2.0.XX.zip) dentro del directorio raíz de tu servidor web.

3. Descomprime el archivo directamente en el directorio raíz del servidor. Se habrá creado un directorio llamado Symfony/.

4. Abre una consola de comandos y accede al directorio Symfony/ creado en el paso anterior.

5. Ejecuta el siguiente comando para descargar el código fuente de Symfony2 y el de todas las librerías externas: php bin/vendors install (la ejecución de este comando puede tardar un buen rato, ya que se descargan muchos componentes).

chmod -R 777 /var/www/Symfony/app/cache chmod -R 777 /var/www/Symfony/app/logs nano /etc/php5/apache2/php.ini // Find the line with ;date.timezone = put Europe/Paris. quitar ; del principio sudo service apache2 restart sudo apt-get install php-apc sudo apt-get install php5-sqlite sudo service apache2 restart

Comprobando la instalación realizada

Dentro de symfony/ php app/check.php: Para ver si cumple los requisitos básicos y los extendidos php app/console: la ayuda de la consoloa de symfony TRUCO!: Si no quieres escribir una y otra vez php app/console delante del comando a ejecutar, puedes entrar en la shell de Symfony2 ejecutando php app/console --shell. Ahora ya puedes ejecutar cualquier comando escribiendo simplemente su nombre.

[]

Primer bundle

Generacion automatica: php app/console generate:bundle

Hace las siguientes 5 preguntas y luego dos más al final.

Los bundles aparte de crearlo hay que cargarlos. Eso se hace en: Symfony/app/AppKernel.php en la function registerBundles

Generar bundle de forma interactiva:

php app/console generate:bundle --namespace=Cupon/CiudadBundle --bundle-name=CiudadBundle --dir=src/ --format=yml --structure=no --no-interaction

SECURITY COMPONENT

 * Saber los datos del usuario conectado:

En controlador: $user = $this->get('security.context')->getToken->getUser; $data['name'] = $user->getName; $data['rol'] = $user->getRol;

En vista: Nombre Rol

use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 * Saber si tiene ese rol:

En el controlador: if ($this->get('security.context')->isGranted('ROLE_USER')) { throw new AccessDeniedException; } elseif ($this->get('security.context')->isGranted('ROLE_ADMIN')) { echo 'ROLE_ADMIN'; }

En la vista: {% if is_granted('ROLE_USER) %} {# ... #} {% elseif is_granted('ROLE_ADMIN') %} {# ... #} {% endif %}

El único inconveniente de la función is_granted es que si la utilizas en una plantilla cuya URL

no se encuentra bajo algún firewall, se produce un error y Twig muestra una excepción.

Tipos de roles: - IS_AUTHENTICATED_ANONYMOUSLY : Se trata de un usuario anónimo. Técnicamente, en Symfony2 los usuarios anónimos también están autenticados. - IS_AUTHENTICATED_REMEMBERED : El usuario está autenticado, pero no ha introducido su contraseña. La autenticación se ha producido por la cookie de la opción "remember me" - IS_AUTHENTICATED_FULLY : El usuario está autenticado y la razón es que acaba de introducir su nombre de usuario y contraseña

TWIG

Comandos: Imprime la variable {% block title %} {% endblock %} Crea el bloque title que se redefine en la vista que lo hereda. {% include '::styles.html.twig' %} Incluye un fichero

Declara y setea una variable {% set foo = 'foo' %} {% set foo = [1,2] %} {% set foo = {'foo' : 'bar'} %} code {% set foo = 'foo' %} {% set foo = [ 1, 2 ] %} {% set foo = { 'foo' : 'bar' } %} code

Sintaxis y autocompletado de twig en sublime text 2

cd ~ cd .config/-sublime-text-2/Packages git clone https://github.com/Anomareh/PHP-Twig.tmbundle.git Reiniciar sublime text

Ir a View -> Syntax -> HTML (twig)

Zen coding (plugin para sublime text 2)

Bajar e instalar sublime packages controller [] Ir a la pestaña de Installation y copiar el churro que sale en la página en la controla de ST2 (view -> show/hide console)

Reiniciar

Darle SHIDT+CTRL+P y pone "package controll"

Nos interesa el que dice "Install package". Dale y sale muchos paquetes que puedes instalar para vitaminamizar SF2

Seleccionar el que dice "zen coding". Enter. Abajo a la izquierda te va diciendo como va el proceso de instalación y cuando termine, sin reiniciar SF2 se puede usar.

Packages interesantes: snippets para codeigniter y symfony. otro para usar los comandos de symfony en la consola de SF2

SUBLIME TEXT 2

Combinaciones de teclas: Mas info: [] CTRL + P : Buscar y abrir ficheros. Con : va a la linea que se quiere, con @ las funciones o metodos, # para buscar en un documento CTRL * R : Saca las funciones o metodos del fichero que esta CTRL + G : Va la linea que se pone CTRL + ; : Para buscar en un documento

MAYUS + ALT + {number} : Genera las pantallas que se mete en {number}

CTRL + L : Selecciona toda la linea actual CTRL + D : Selecciona toda la palabra actual

Multi-selección: CTRL pulsado y con el raton seleccionar las palbras que quieran y luego escribir lo que se quiera para reemplazarlo

Quick search&replace: Seleccionar palabra. Darle CTRL + F3. Escribir el reemplazo

CTRL + KK Borra desde el cursor hasta final de linea COMPOSER mkdir framework cd framework wget http://getcomposer.org/composer.phar

crear fichero composer.json con code format="php" {    "require" : { "symfony/class-loader" : "2.1.*" } } code

ejecutar php composer.phar install crea un carpeta vendor con el class-loader en el.

ADMIN GENERATOR

Para saber que columnas tiene una tabla

SHOW COLUMNS FROM EVENTS

- sacar las columnas de la base datos.

- empezar el forech de las columnas { //crear el set/get de cada columna// crear las funciones en el controlador // crear las vistas de todas las funcines. }

Generador de elementos HTML:

! Mirar si hay algo que se pueda usar para esta parte Elementos pensados: Primera fase: text textarea submit label fieldset select radio

Segunda fase: file

Los datos de prueba se probaran con doctrimeSchema

OBJETO REQUEST:

$request->getPathInfo; Saca lo que hay despues de la ruta base. Teniendo [] devuelde "/hello/aa" $request->getClientIp; Te devuelve la ip del usuario conectado.

Redirección use Symfony\Component\HttpFoundation\RedirectResponse; $response = new RedirectResponse('http://aitoribanez.com'); $response->send;

CILEX

cd Hazi/Lib/Vendor/cilex/cilex/ php example.php