Con este post iniciamos una serie de posts donde aprenderemos drupal 8 desde 0, desde su configuración hasta desarrollo de módulos custom. Comenzamos!!
Para iniciar nuestro proyecto debemos tener instalado composer, si no lo tenemos instalado haremos lo siguiente para instalarlo (Linux/Mac):
curl -sS https://getcomposer.org/installer | php
Posteriormente hacemos que composer funcione de manera global en nuestro equipo (lo cual os recomendamos):
mv composer.phar /usr/local/bin/composer
Una vez instalado composer ejecutamos el siguiente comando en nuestra terminal para descargarnos nuestro proyecto drupal base:
composer create-project drupal-composer/drupal-project:8.x-dev blog-posts --stability dev --no-interaction --no-install
blog-posts será el nombre del proyecto por lo que cada uno podéis usar el nombre que queráis.
Una vez hecho esto y accederemos a la carpeta y haciendo uso de git realizaremos el primer commit:
git init
git add -A
git commit -m “Initial commit”
Ahora preparamos los ficheros para el trabajo del proyecto en desarrollo.
Accedemos a la carpeta web/sites/default y editamos el fichero development.services.yml
Le añadiremos a parameters los siguientes items (cuidado con copiar y pegar, tener muy en cuenta las tabulaciones en los yml que pueden dar problemas)
twig.config:
debug: true
auto_reload: true
cache: false
Esto hará que podamos debugear correctamente los ficheros twig y veamos las suggestions (sugerencias a la hora de sobreescribir ficheros twig que veremos más adelante) lo cual facilita mucho el desarrollo.
Por lo que el fichero development.services.yml nos quedará del siguiente modo:
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
http.response.debug_cacheability_headers: true
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
Ahora accedemos a web/sites/default y editamos el fichero settings.php
En este añadiremos:
$config['config_split.config_split.dev']['status'] = FALSE;
(En próximos posts explicaremos para qué sirve)
Posteriormente añadiremos la configuración del fichero settings.php donde pondremos en:
database: La base de datos que hayamos creado en nuestro entorno de producción.
username: Nombre de usuario de la base de datos de producción.
password: Contraseña de usuario de la base de datos de producción.
host: IP del servidor de base de datos de producción.
$databases['default']['default'] = array (
'database' => 'blog_posts',
'username' => 'root',
'password' => 'root',
'prefix' => '',
'host' => 'localhost',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
);
Y descomentamos estas líneas y las añadimos al final del fichero por debajo de la configuración que hemos añadido anteriormente.
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}
Por último editamos el fichero settings.local.php para sobreescribir configuración del settings.php por la que usaremos en el entorno de desarrollo. En settings.local.php añadiremos
$config['config_split.config_split.dev']['status'] = TRUE;
(En próximos posts explicaremos para qué sirve)
y añadimos nuestra configuración de la base de datos de desarrollo:
$databases['default']['default'] = array (
'database' => 'blog_posts',
'username' => 'root',
'password' => 'root',
'prefix' => '',
'host' => 'localhost',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
);
Ya con todos los cambios realizados, añadiremos a git el fichero development.services que nos aparecerá con cambios (Ejecutamos git status y lo veremos que aparece como cambio), podemos ver los cambios que tiene haciendo uso de git diff
git diff web/sites/development.services.yml
git add web/sites/development.services.yml
git commit -m "MODIFY development.services.yml"
Una vez configurados los entornos procedemos a la instalación de drupal lo cual veremos en el siguiente post.
NOTA: Los ficheros settings no irán en el control de versiones por motivos de seguridad (entre otros) por lo cual a producción subiremos el fichero settings.php (No subiremos el settings.local.php)