Symfony es un framework de desarrollo PHP para profesionales. En conjunto con Maestros del Web y Maycol Alvarez hemos escrito esta guía sobre este framework para dar opciones a los desarrolladores PHP a encontrar material importante y poder tener rápidamente un conocimiento de todo el framework para iniciar un proyecto contando con las nociones necesarias para ello.
La guía se encuentra publicada en sitio de Maestros del Web pero abajo les dejo el índice de los capítulos de la guía y el link a los resúmenes semanales que fui escribiendo.
Cualquier comentario o pregunta las espero abajo.
- Capítulo 1 – Introducción – Juan Ardissone (micayael)
- Capítulo 2 – El proyecto y los bundles – Juan Ardissone (micayael)
- Capítulo 3 – Creando páginas con Symfony 2 – Juan Ardissone (micayael)
- Capítulo 4 – Sistema de Routing – Maycol Alvarez
- Capítulo 5 – Definición de rutas con comodines – Maycol Alvarez
- Capítulo 6 – Trabajando con el Controlador – Maycol Alvarez
- Capítulo 7 – Manejando la Vista con Twig – Maycol Alvarez
- Capítulo 8 – Configurando nuestra base de datos – Juan Ardissone (micayael)
- Capítulo 9 – Manipulando datos con Doctrine – Juan Ardissone (micayael)
- Capítulo 10 – Validación de datos y creación de formularios – Juan Ardissone
- Capítulo 11 – Integrando AJAX – Maycol Alvarez
- Capítulo 11-B – Integrando jQuery – Juan Ardissone (micayael) – Maycol Alvarez
- Capítulo 12 – Instalando Bundles de terceros – Maycol Alvarez
- Capítulo 13 – Seguridad de Acceso – Maycol Alvarez
También puedes descargar la guía desde aquí
Descubre más desde Neurosimbiosis
Suscríbete y recibe las últimas entradas en tu correo electrónico.
Hola, soy nueva en symfony, pero quiero felictaros y daros las gracias por este manual con el que he aprendido mucho.
Ahora que ya tengo una pequeña aplicación con la que he puesto en práctica los conocimientos, me dispongo a desplegarla en un host compartido que cumple los requisitos necesarios, pero no se como hacerlo. Hasta ahora todas las pruebas la he reliazado en local.
Me podrías indicar los pasos a seguir o algún manual explicativo.
Gracias. Isabel
ISABEL, gracias por tus comentarios 🙂 me alegro que te haya servido.
Para subirlo a un server por lo general tienes en tu cuenta de hosting una carpeta public_html/ o web/ y esa sería tu carpeta publica. Todo lo que esté por debajo de esta carpeta no será publico. Lo ideal sería que la carpeta web/ de «tu proyecto Symfony» sea la carpeta pública de tu hosting. Es decir que puedes copiar el contenido de la carpeta web/ del proyecto y mover los archivos a la carpeta public_html/ o web/ del hosting. El resto de tus carpetas de Symfony (app/, bin/, src/, vendor/) deberían estar ya en la carpeta padre del hosting. Con esto logras que las carpetas que no sean la web/ no puedan ser accedidas.
Supongamos que tu proyecto se llama Symfony y que tienes esta estructura en tu proyecto y en tu hosting:
Symfony
– app
– bin
– src
– vendor
– web
— app.php + otros archivos
hosting
– public_html
– otra carpeta no publica
Mueve el contenido de la carpeta web/ del proyecto a la carpeta public_html y el proyecto déjalo al mismo nivel de la carpeta public_html quedando así en tu hosting
hosting
– public_html
— app.php + otros archivos
– Symfony
– otra carpeta no publica
Ahora, como has cambiado el contenido de la carpeta web tienes que modificar las rutas que aparecen en los controladores frontales al inicio para que siga encontrando los archivos que levantan el framework.
require_once __DIR__.’/../app/bootstrap.php.cache’;
require_once __DIR__.’/../app/AppKernel.php’;
Corrije esta ruta y ya debería de funcionar 🙂
require_once __DIR__.’/../Symfony/app/bootstrap.php.cache’;
require_once __DIR__.’/../Symfony/app/AppKernel.php’;
Coméntame tu progreso.
Hola amigo muy bueno tu trabajo, creame que me ayudo mucho… Me gustaria que dentro de sus posibilidades dedicara un post a subir multiples archivos con un js como valums file uploader. saludos
Muchismas gracias, por su respuesta. He seguido sus indicaciones, pero no consigo que se concecte a la base de datos.
He creado la base de datos con un usuario con contraseña. He realizado la prueba en localhost con todo igual sólo que en local y funciona correctamente.
Pero en remoto no lo consigo.
Las caracteristicas del servidor de datos remoto son las siguientes:
Servidor: mysql2 via TCP/IP
Versión del servidor: 5.1.49-3~bpo50+1
Versión del protocolo: 10
Usuario: [email protected]
Juegos de caracteres de MySQL: UTF-8 Unicode (utf8)
La configuración que he puesto en parameters.ini es la siguiente:
[parameters]
database_driver=»pdo_mysql»
database_host=»178.32.28.100″
database_port=»»
database_name=»gestioncv_blog»
database_user=»gestioncv»
database_password=»BBnfmnNaNScU79MZ»
mailer_transport=»smtp»
mailer_host=»localhost»
mailer_user=»»
mailer_password=»»
locale=»es»
secret=»080829db3fc4b961a80d953ead12d969a65ebe14″
El error que se muestra es :
500 Internal Server Error – PDOException
1 linked Exception: ErrorException »
Podría indicarme, dónde estoy equivocandome. Muchas gracias por su dedicación.
Isabel
Hola de nuevo, ya lo he logrado el database_host es mysql2.alwaysdata.com.
Alwaysdata es un host que reune todas las características necesarias para symfony.
Ahora tengo otra tarea que resolver, no reconoce la tabla articles, el error es el siguiente:
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘gestioncv_blog.Articles’ doesn’t exist
500 Internal Server Error – PDOException
Voy a ver que sucede, serán siempre bienvenidos sus consejos.
Muchas gracias por todo, Isabel
gestioncv_blog.Articles
base de datos: gestioncv_blog
tabla: Articles
ISABEL, tu problema radica en que en tu aplicación tienes una base de datos que quizá no sea la correcta, o la tabla no ha sido creada, procura configurar ambas cosas correctamente.
PD:
Excelente publicación! bastante útil
Yo tengo este mismo problema al alojar mi proyecto sf en un servidor compartido. Llegaste a solucionarlo ?
gracias
Hola Antonio, a la hora de subir el proyecto a un servidor compartido, así lo hice.
1. Pasa el proyecto a producion—-> en el fichero web/app.php
$kernel = new AppKernel(‘prod’, false);//cambiar a true para entorno de producion
En el fichero web/app_dev.phph
$kernel = new AppKernel(‘dev’, true); //cambiar a false cuando se vaya a produccion
2.Vacia app/cache/prod, app/cache/dev y app/cache/test
3.Vacia el contenido de la carpte app/logs
4.Sube el contenido de la carpeta web a la parte pública del servidor (www o html_public)
4.Sube el proyecto al raiz
5.Modifica app.php
require_once __DIR__.’/../TuProyecto/app/bootstrap.php.cache’;
require_once __DIR__.’/../TuProyecto/app/AppKernel.php’;
Espero que te funcione.Un Saludo
Un saludo amigo. Leyendo la guía hay algo que no me queda claro y es porque no me funciona.
En el capitulo CREANDO PÁGINAS CON SYMFONY 2 en el ejemplo 1 paso 1, ud menciona que hay que crear la ruta para la pagina agregando:
articulos:
pattern: /articulos
defaults: { _controller: MDWDemoBundle:Default:articulos }
Mi problema está en que en ese archivo routing.yml tenia previamente definida la ruta anterior. Entonces si agrego esta ultima entrada mi archivo routing. yml queda de la siguiente manera.
///////////////////////////////////////////
md_wdemo_homepage:
pattern: /hello/{name}
defaults: { _controller: MDWdemoBundle:Default:index }
articulos:
pattern: /articulos
defaults: { _controller: MDWdemoBundle:Default:articulos }
/////////////////////////////////////////////////////////////
El archivo de esta forma no me permite visualizar el ejemplo debido a que da un error.
si solo dejo la ruta de uno de los 2 puedo visualizar aquel elemento cuya ruta esta definida, es decir si dejo articulos, solo puedo visualizar la pagina articulos.
Evidentemente mi duda es, cual es la forma de agregar dichas rutas al archivo routing.yml.
Saludos compañero y agradezco mucho el cual se haya tomado el trabajo de hacer esta guia, que ha dia de hoy aun tiene vigencia para los que estamos conociendo este Framework!
Hector. No se que error te estaría dando, en todo caso si me lo puedes pasar lo puedo revisar, pero lo que es muy común que pase es que entre las dos rutas no tienen que haber espacios vacíos en el yaml.
md_wdemo_homepage:
pattern: /hello/{name}
defaults: { _controller: MDWdemoBundle:Default:index }
<-- asegurate de no tener espacios en blanco aquí. Puedes tener espacios hacia abajo (enters) pero no hacía los costados (barra espaciadora) articulos: pattern: /articulos defaults: { _controller: MDWdemoBundle:Default:articulos }
José, asegúrate de tener bien configurado tu servidor de base de datos.