background preloader

Symfony

Facebook Twitter

2.4. El archivo <code>composer.lock</code> (Composer, el manual oficial) Después de instalar las dependencias, Composer apunta en el archivo composer.lock la versión exacta que se ha instalado de cada librería. De esta forma, el proyecto se fija a unas determinadas versiones. Una buena práctica recomendada consiste en subir al repositorio de código tanto el archivo composer.lock como el archivo composer.json. Esto es muy importante porque el comando install comprueba primero si existe el archivo composer.lock y si existe, descarga exactamente las versiones que se indican en ese archivo (sin importar lo que diga el archivo composer.json).

Gracias al archivo composer.lock, cualquier persona que se descargue el proyecto tendrá exactamente las mismas versiones de las dependencias. Además, tu servidor de integración continua, tus servidores de producción, todos los miembros del equipo de desarrollo y cualquier otra persona o cosa que se baje el proyecto tendrá exactamente las mismas dependencias. . $ php composer.phar update. Cómo solucionar los errores habituales de Composer. A continuación se explica cómo solucionar los errores más habituales que se producen al utilizar Composer para gestionar las dependencias de los proyectos PHP. Errores generales 1. Cuando se produzca cualquier error, ejecuta primero el comando composer diagnose para que Composer realice una serie de comprobaciones automáticas de los problemas habituales. Si todo está bien, puede seguir con los siguientes pasos. 2. Asegúrate de actualizar de vez en cuando Composer ejecutando el comando composer self-update. 3. 4. Cómo solucionar el error Package not found 1. 2. 3. 4.

Cómo solucionar el error Package not found on travis-ci.org 1. 2. La solución más eficaz suele ser definir la versión mediante una variable de entorno llamada COMPOSER_ROOT_VERSION. Si utilizas Travis, añade la siguiente configuración en tu archivo .travis.yml: before_script: "COMPOSER_ROOT_VERSION=dev-master composer install" Cómo redefinir la versión de una dependencia Cómo solucionar los problemas de memoria 1. 2. 3.

Symfony & mongodb

Doctrine2: Owning e inversed side en las relaciones. Estaba escribiendo un post sobre embeber formularios y quería explicar antes cómo funcionaban las relaciones en Doctrine, pero se me estaba haciendo tan largo que he decidido separarlo en uno independiente. En este post veremos uno de los temas importantes que hay que conocer cuando usas Doctrine. En las relaciones de las Entities siempre hay un lado que es el owning de la relación, ya sea unidireccional o bidireccional.

Como vemos en la documentación esto es importante tenerlo claro: Las relaciones pueden ser bidireccionales o unidireccionales.Una relación bidireccional tiene owning side e inversed side.Una relación unidireccional sólo tiene owning side.Doctrine sólo comprobará que ha habido cambios en el owning side. ¿Cuál es el owning y el inversed side? Depende del tipo de relación: ¿Cómo se indica en el código? Doctrine sólo comprobará que ha habido cambios en el owning side ¿Qué implica esto? Si ejecutamos esto: Podemos persistir explicitamente el comentario: Google+ Symfony2: Embeber formularios con relaciones. Hoy toca un post bastante largo, gran parte va a ser código y la parte de texto será para explicar cada decisión que tomamos. En esta ocasión vamos a ver cómo embeber formularios con diferentes relaciones que podemos tener y cómo configurar las entities para que se persistan correctamente. Antes de meternos con los ejemplos vamos a ver la teoría que debemos saber sobre formularios, Doctrine, validación y cómo se comportan.

Formularios El segundo parámetro cuando se añade un campo a un formulario es un Type ¿Qué significa esto? $form = $this->createFormBuilder($task) ->add('task', 'text') ->add('dueDate', 'date') ->getForm(); text y date son Types que vienen por defecto en el componente Form y están registrados de forma que podemos obtenerlos por el nombre, es decir, es lo mismo que si hiciéramos: use Symfony\Component\Form\Extension\Core\Type; $form = $this->createFormBuilder($task) ->add('task', new Type\TextType()) ->add('dueDate', new Type\DateType()) ->getForm(); El parámetro by_reference.

Relaciones | Resultados de la búsqueda | El rincón de un parásito virtual. Continuamos con el capítulo cinco de la referencia de Doctrine 2. Asociación One-To-One unidireccional Este tipo de asociacion es la más común. Veamos un ejemplo con dos entidades, una entidad producto cuyo nombre de clase es Product, y otra entidad gastos de envío cuyo nombre de clase es Shipping.

Este tipo de asociaciones se mapean utilizando la anotación @OneToOne y adicionalmente la anotación @JoinColumn si queremos especificar la tabla con la que se va a cruzar. <? Php/** @Entity */class Product { // ... /** * @OneToOne(targetEntity="Shipping") * @JoinColumn(name="shipping_id", referencedColumnName="id") */ private $shipping; // ...} /** @Entity */class Shipping { // ...} El ejemplo es muy sencillo, un producto se relaciona con un gasto de envío. El esquema de MySQL usado sería el siguiente: Como vemos es muy sencillo, son dos tablas, una para almacenar los productos y otro para almacenar los gastos de envío. Asociación One-To-One Bidireccional <? Asociación One-To-One en la misma tabla <? Php - How to ManyToMany and OneToMany in Symfony and Doctrine. INSTALAR SYMFONY2 DESDE 0. This is second part in the “Install Symfony 2 development environment on windows” series.

For part 4 – configuring php click here. For part 3 – configuring apache and installing composer click here. For part 1 – installing git click here. First of all download the latest version of XAMMP from here. Be sure to download the installer version. Run the installer. Select your prefered language. Read through the warning and click ok. Click next. Leave all the defaults and click next. Choose the installation folder in this guide we will keep the default directory (you remember the warning from before right?).

Jihaa! Like this: Like Loading...

SOAP

Doctrine 2 Symfony2. 1 - Si la categoría es opcional si, es un ManyToMany con el id del post en la relación como unique. 2 - Lo que te sugiero es que a las propiedades no les agregues el nombre de la clase, esto es redundante: Código PHP: Ver original class Post { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="IDENTITY") */ protected $idpost; ...} en la clase Post declaras la propiedad idpost, es mas claro si simplemente la llamas id: class Post { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="IDENTITY") */ protected $id; } algo similar con la categoría, class Post { ... /** * @ORM\ManyToOne(targetEntity="PostCategory", inversedBy="posts", cascade={"remove"}) * @ORM\JoinColumn(name="idpostcategory", referencedColumnName="id") */ protected $postcategory; } un post tiene una categoria, es mas claro: class Post { ... /** * @ORM\ManyToOne(targetEntity="PostCategory", inversedBy="posts", cascade={"remove"}) */ protected $category; } Cita:

Symfony2 + File Upload Progress Bar - Symfony2 forum. 30 Symfony Best Practices. Using a DataTransformer to save tags for an object in Symfony – blogsh.de. Today I want to show you how tags can be edited and saved comfortably using a form and a DataTransformer. My Document looks like this: namespace MyName\MyBundle\Document; use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;use Symfony\Component\Validator\Constraints as Assert; /** * @MongoDB\Document() */class Post { /** * @MongoDB\Collection */ private $tags = array(); public function getTags() { return $this->tags; } public function setTags(array $tags) { $this->tags = $tags; } // other fields like title and text and other setters/getters} Now I want that the user can edit a Post with a form. There I want the user to type a list of tags, separated by commas.

Namespace MyName\MyBundle\Form\DataTransformer; use Symfony\Component\Form\DataTransformerInterface; class TagsTransformer implements DataTransformerInterface { /** * Transforms the Document's value to a value for the form field */ public function transform($tags) { if (! And that’s it. Howto Facebook Connect in Symfony2. Symfony 2.3, el libro oficial (LibrosWeb.es) Introducción a Symfony 2. Hoy iniciamos con el primer capítulo del curso Symfony 2, el framework PHP orientado a objetos.

El contenido está dividido en 13 capítulos que se estarán publicando semanalmente: Al finalizar la guía podrás descargar en diferentes formatos el contenido completo. ¡Ahora, comencemos con el primer capítulo! Capitulo 1: Introducción a Symfony 2 Symfony es un framework PHP que nos permite muy fácilmente utilizar la arquitectura MVC (Model-View-Controller). Nota Esta guía está actualizada para utilizar la versión 2.2 de Symfony ya que desde esta versión se crearon muchas mejoras.

Symfony Fue creado por una gran comunidad liderada por Fabien Potencier, quién a la fecha, sigue al frente de este proyecto con una visión muy fuertemente orientada hacia las mejores prácticas que hoy en día forman parte del estándar de desarrollo de software. Otra de las funcionalidades más interesantes, es que contiene un subframework para trabajar con formularios. Entendiendo la Arquitectura MVC Documentación oficial.

Bundles

Symfony2 cheat sheet. Proyecto de traducción al Español — Documentación Symfony2. Symfony Cheat Sheet by Mika56. How to generate Entities from an Existing Database (current. When starting work on a brand new project that uses a database, two different situations comes naturally. In most cases, the database model is designed and built from scratch. Sometimes, however, you'll start with an existing and probably unchangeable database model. Fortunately, Doctrine comes with a bunch of tools to help generate model classes from your existing database. Note As the Doctrine tools documentation says, reverse engineering is a one-time process to get started on a project. Doctrine is able to convert approximately 70-80% of the necessary mapping information based on fields, indexes and foreign key constraints.

Doctrine can't discover inverse associations, inheritance types, entities with foreign keys as primary keys or semantical operations on associations such as cascade or lifecycle events. This tutorial assumes you're using a simple blog application with the following two tables: blog_post and blog_comment. Tip The generated entities are now ready to be used. Symfony2 frente a PHP simple — Manual de Symfony2 en Español. Si nunca has usado una plataforma PHP, no estás familiarizado con la filosofía MVC, o simplemente te preguntas qué es todo ese alboroto en torno a Symfony2, este capítulo es para ti. En vez de decirte que Symfony2 te permite desarrollar software más rápido y mejor que con PHP simple, debes verlo tú mismo. En este capítulo, vamos a escribir una aplicación sencilla en PHP simple, y luego la reconstruiremos para que esté mejor organizada. Podrás viajar a través del tiempo, viendo las decisiones de por qué el desarrollo web ha evolucionado en los últimos años hasta donde está ahora.

Al final, verás cómo Symfony2 te puede rescatar de las tareas cotidianas y te permite recuperar el control de tu código. Un sencillo blog en PHP simple En este capítulo, crearemos una simbólica aplicación de blog utilizando sólo PHP simple. <? Eso es fácil de escribir, se ejecuta rápido, y, cuando tu aplicación crece, imposible de mantener. Nota Trabajaremos en la solución de estos y muchos problemas más.

<? <! <? Truco. Un primer vistazo — Manual de Symfony2 en Español. Uno de los principales objetivos de una plataforma es garantizar la separación de responsabilidades. Esto mantiene tu código organizado y permite a tu aplicación evolucionar fácilmente en el tiempo, evitando mezclar llamadas a la base de datos, etiquetas HTML y código de la lógica del negocio en un mismo archivo. Para alcanzar este objetivo, debes aprender algunos conceptos y términos fundamentales. La distribución viene con algún código de ejemplo que puedes utilizar para aprender más sobre los principales conceptos de Symfony2.

Ingresa a la siguiente URL para recibir un saludo de Symfony2 (reemplaza Nacho con tu nombre): Tu responsabilidad como desarrollador es escribir el código que asigna la petición del usuario (/demo/hello/Nacho) al recurso asociado con ella (la página HTML ¡Hola Nacho!). Enrutando Symfony2 encamina la petición al código que la maneja tratando de hacer coincidir la URL solicitada contra algunas rutas configuradas. Truco Controladores Nota Paquetes. Tutorial de Symfony2 - juanda rodríguez. El objetivo este tutorial es ofrecer una visión panorámica del framework PHP para el desarrollo de aplicaciones web . El desarrollo de una sencilla aplicación web servirá como elemento vertebrador de este documento.

Para seguir el tutorial necesitarás un entorno con: Instalación y configuración de Symfony2 A partir de este momento, y mientras no lo especifiquemos explicitamente, cuando hablemos de Symfony2 nos estamos refiriendo al framework, concretamente a la edición estándard. En este apartado vamos a instalar y configurar Symfony2, y lo dejaremos listo para construir la aplicación de gestión de alimentos sobre él. Bájate de la última versión de la rama 2.0 de Symfony2. Nota Descompríme el archivo descargado en algún directorio accesible al servidor web, esto es, dentro de su Document root. Chmod -R 777 app/cache app/logs Y que tanto el servidor web como el servidor de MySQL están instalado en la máquina local. ... Creando un blog en Symfony2 — symblog - Una guía de Symfony2.