Instalando la edición estándar del CMF de Symfony

El objetivo de esta guía es instalar todos los componentes del CMF con la configuración mínima necesaria y algunos muy sencillos ejemplos en una aplicación Symfony2 en funcionamiento. Esto se suele usar para familiarizarte con el CMF o para utilizarlo como punto de partida para personalizar una nueva aplicación.

Si este es tu primer encuentro con el CMF de Symfony sería buena idea darle un vistazo primero a:

Nota

Para otras guías de instalación del CMF de Symfony, por favor, consulta:

Requisitos previos

Debido a que el CMF de Symfony está basado en Symfony2, deberías asegurarte de que cubres los Requisitos para que funcione Symfony2. Además, necesitas tener instalada la extensión PDO de SQLite (pdo_sqlite), puesto que esta se utiliza como el medio de almacenamiento predeterminado.

Nota

By default, Symfony CMF uses Jackalope + Doctrine DBAL and SQLite as the underlying DB. No obstante, el CMF de Symfony es de almacenamiento agnóstico, lo cual significa que puedes utilizar uno de varios mecanismos de almacenamiento de datos disponibles sin tener que reescribir tu código. Para más información en los diferentes mecanismos disponibles y cómo instalarlos y configurarlos, consulta el Instalando y configurando Doctrine y PHPCR-ODM

Git and Curl are also needed to follow the installation steps listed below.

Instalando

La manera más fácil de instalar el CMF de Symfony es utilizando Composer. Consíguelo usando:

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Y luego consigue el código del CMF de Symfony con él (esto puede tomar un buen rato)

$ php composer.phar create-project symfony-cmf/standard-edition <path-to-install> --stability=dev
$ cd <path-to-install>

Nota

The path <path-to-install> should either inside your web server doc root or configure a virtual host for <path-to-install>.

Esto clonará la edición estándar e instalará todas las dependencias y ejecutará algunas órdenes iniciales. Estas órdenes requieren permisos de escritura en los directorios app/cache y app/logs. En caso de que al final las órdenes terminen dando errores de permisos, por favor sigue las directrices en la documentación oficial para configurar los permisos y luego ejecuta la orden composer.phar install mencionada abajo.

Si lo prefieres, también puedes clonar el proyecto directamente:

$ git clone git://github.com/symfony-cmf/symfony-cmf-standard.git <dir-name>
$ cd <dir-name>

Si ocurrieron problemas durante la orden create-project, o si utilizaste git clone o si después activaste una versión anterior (con checkout), siempre ejecuta la siguiente orden para actualizar las dependencias:

$ php composer.phar install

The next step is to setup the database, if you want to use SQLite as your database backend just go ahead and run the following:

$ php app/console doctrine:database:create
$ php app/console doctrine:phpcr:init:dbal
$ php app/console doctrine:phpcr:repository:init
$ php app/console doctrine:phpcr:fixtures:load

This will create a file called app.sqlite inside your app folder, containing the database content.

El proyecto ahora tendría que estar accesible en tu servidor web. Si tienes instalado PHP 5.4, alternativamente puedes utilizar el servidor web interno de PHP:

$ php app/console server:run

Y entonces accede al CMF vía:

http://localhost:8000

Si prefieres utilizar otro servidor de base de datos, por ejemplo MySQL, ejecuta el configurador (apunta tu navegador a /web/config.php) o configura tus parámetros de conexión a la base de datos en el archivo app/config/parameters.yml. Asegúrate de dejar la propiedad database_path en null para utilizar otro controlador distinto a SQLite. Dejar el campo en blanco en el configurador web lo debería poner a null.

Descripción

Esta guía te ayudará a entender las partes básicas de la edición estándar del CMF de Symfony (EE) y cómo trabajan juntas para proporcionar las páginas predefinidas que puedes ver al explorar la instalación de la Edición estándar del CMF de Symfony.

It assumes you have already installed Symfony CMF SE and have carefully read the Symfony2 book.

Nota

Para otras guías de instalación del CMF de Symfony, por favor, consulta:

AcmeMainBundle y SimpleCMSBundle

La EE del CMF de Symfony viene con un AcmeMainBundle predefinido para ayudarte a empezar, en una manera similar al AcmeDemoBundle que tiene Symfony2, proporcionándote algunas páginas de demostración visibles en tu navegador. Sin embargo, el AcmeMainBundle no incluye controladores o archivos de configuración, como probablemente esperarías. Este contiene poco más que un archivo Twig y datos Accesorios, que fueron cargados a tu base de datos durante la instalación.

Hay varios paquetes trabajando juntos para convertir los datos accesorios en un sitio web navegable. El proceso global simplificado, es el siguiente:

  • When a request is received, the Symfony CMF Enrutando‘s Dynamic Router is used to handle the incoming request.
  • The Dynamic Router is able to match the requested URL with a specific ContentBundle’s Content stored in the database.
  • The retrieved content’s information is used to determine which controller to pass it on to, and which template to use.
  • As configured, the retrieved content is passed to ContentBundle’s ContentController, which will handle it and render AcmeMainBundle’s layout.html.twig.

Una vez más, esto es un vistazo simplificado de un muy sencillo CMS construido en lo alto del CMF de Symfony. To fully understand all the possibilities of the CMF, a careful look into each component is needed.

If you want to review the contents of the PHPCR database you can use the following command:

$ php app/console doctrine:phpcr:dump

Adding new pages

Symfony CMF SE does not provide any admin tools to create new pages. If you are interested in adding an admin UI have a look at Creando un CMS con CMF y Sonata. However if all you want is a simple way to add new pages that you can then edit via the inline editing, then you can use the SimpleCmsBundle page migrator. The Symfony CMF SE ships with an example yaml file stored in app/Resources/data/pages/test.yml. The contents of this file can be loaded into the PHPCR database by calling:

$ php app/console doctrine:phpcr:migrator page --identifier=/cms/simple/test

Note that the above identifier is mapped to app/Resources/data/pages/test.yml by stripping off the basepath configuration of the SimpleCmsBundle, which defaults to /cms/simple. Therefore if you want to define a child page foo for /cms/simple/test you would need to create a file ``app/Resources/data/pages/test/foo.yml and then run the following command:

$ php app/console doctrine:phpcr:migrator page --identifier=/cms/simple/test/foo
Bifúrcame en GitHub