SlideShare a Scribd company logo
Drupal 8 simple page
Y otras historias
• Y otras historias
Y este soy yo… @estoyausente
• Y otras historias
Y este soy yo… @estoyausente
Gasolina vital
• Y otras historias
Y este soy yo… @estoyausente
Gasolina vital
Drupal 7
Drupal 8
Un pequeño paso para el hombre …
Esta presentación contiene
ejemplos que funcionan
basados sólo en mi experiencia
para más información consulte
las APIs
Vamos a ver
1. Configuration manager

2. Routing

3. Formularios

4. Servicios

5. Theming
Configuration manager
Impresiones
1. ¡Funciona!

2. ¡Funciona bien!

3. …

4. Aún no lo veo para algunas cosas.
Configuration manager
Configuration manager
Configuration manager
Configuration manager
Configuration manager
Configuration manager
Para explorar
1. https://www.drupal.org/project/config_tools

2. https://www.drupal.org/project/config_update

3. https://www.drupal.org/project/config_sync

4. https://www.drupal.org/project/config_devel

5. https://www.drupal.org/project/features ????
Mi primer módulo
Drupal
generate:module
Routing
example_dyb_landing_content:

path: '/landing-my-awsome-path'

defaults:

_controller: 'Drupalexample_dyb_landing
ControllerLandingContentController::pageContent'

requirements:

_access: 'TRUE'
example_dyb_landing/example_dyb_landing.routing.yml
Controller
namespace Drupalexample_dyb_landingController;



use DrupalCoreControllerControllerBase;

use DrupalCoreUrl;



class LandingContentController extends
ControllerBase {

public function pageContent() {
$content = []; //Render array
return $content;

}

}
example_dyb_landing/src/Controllers/LandingContentController.php
Pausa para gato
Forms
namespace Drupalexample_dyb_landingForm;



use DrupalCoreFormFormBase;

use DrupalCoreFormFormStateInterface;



class ContactForm extends FormBase {



public function getFormId() {

return 'contact_form';

}
example_dyb_landing/src/Form/ContactForm.php
Forms
public function buildForm(array $form,
FormStateInterface $form_state) {
$form['mail'] = array(

'#type' => 'email',

'#title' => $this->t('Email'),

'#required' => TRUE,

'#attributes' => ['class' => ['formcontrol']],

);
return $form;

}
example_dyb_landing/src/Form/ContactForm.php
Forms
public function validateForm(array &$form,
FormStateInterface $form_state) {

$values = $form_state->getValues();



if(!Drupal::service('email.validator')-
>isValid($values['mail'])) {

$form_state->setErrorByName('mail', $this-
>t('The email address %mail is not valid.',
array('%mail' => $values['mail'])));

}
}
example_dyb_landing/src/Form/ContactForm.php
Forms


public function submitForm(array &$form, FormStateInterface
$form_state) {



$values = $form_state->getValues();

$to = Drupal::config('system.site')->get('mail');

$language_interface = Drupal::languageManager()-
>getCurrentLanguage();



Drupal::service('plugin.manager.mail')-
>mail('example_dyb_landing', 'contact_message', $to,
$language_interface, $values, 'no-replyđ@mail.com');

drupal_set_message($this->t('Thank for contact us. Your
message has been sent correctly.'));

}
example_dyb_landing/src/Form/ContactForm.php
Forms
$output['bottom']['form'] = [

'#type' => 'container',

'#attributes' => ['class' => ['left']],

'form' => Drupal::formBuilder()-
>getForm('Drupalexample_dyb_landingForm
ContactForm'),

];
example_dyb_landing/src/Form/ContactForm.php
Forms
$output['bottom']['form'] = [

'#type' => 'container',

'#attributes' => ['class' => ['left']],

'form' => Drupal::formBuilder()-
>getForm('Drupalexample_dyb_landingForm
ContactForm'),

];
example_dyb_landing/src/Form/ContactForm.php
Servicios
services:

rest_client.client:

class: Drupalrest_clientRestClient
example_dyb_landing/rest_client.services.yml
Servicios
namespace Drupalrest_client;



/**

* Class RestClient

* @package Drupalrest_client

*/

class RestClient{
protected $url;
public function __construct() {

$this->url = 'myserver.com';

}
example_dyb_landing/src/RestClient.php
Servicios
public function getSpecialities($country = 'ES') {



$cid = 'rest_client_getSpecialities_' . $country;

if ($cache = Drupal::cache()->get($cid)) {

return $cache->data;

}

//$output = getSomeStuff();
Drupal::cache()->set($cid, $output);

return $output;

}



return [];

}
example_dyb_landing/src/RestClient.php
Servicios
public function getSpecialities($country = 'ES') {



$cid = 'rest_client_getSpecialities_' . $country;

if ($cache = Drupal::cache()->get($cid)) {

return $cache->data;

}

//$output = getSomeStuff();
Drupal::cache()->set($cid, $output);

return $output;

}



return [];

}
example_dyb_landing/src/RestClient.php
Inyección de dependencias
dependencies:

- rest_client
example_dyb_landing/example_dyb_landing.info.yml
Inyección de dependencias
namespace Drupalregister_formForm;

use Drupalrest_clientRestClient;
class RegisterForm extends FormBase{



protected $client;





public function __construct(RestClient $client) {

$this->client = $client;

}


public static function create(ContainerInterface $container) {

return new static(

$container->get('rest_client.client'),

);
}
example_dyb_landing/src/Form/RegisterForm.php
Inyección de dependencias


public function buildForm(array $form,
FormStateInterface $form_state) {

$form['speciality'] = [

'#type' => 'select',

'#options' => $this->client->getSpecialities(),

'#title' => $this->t('Speciality'),

'#required' => TRUE,

'#attributes' => ['class' => ['formcontrol']],

];
return $form;
}
example_dyb_landing/src/Form/RegisterForm.php
Pausa para meme
Mi primer theme
Drupal
generate:theme
name: public

type: theme

description: Public theme.

package: Other

core: 8.x

libraries:

- public/global-styling



base theme: classy



regions:

content: Content

header: Header

footer: Footer
public/public.info.yml
Mi primer theme
global-styling:

version: 1.x

css:

theme:

css/style.css: {}

js:

js/public.js: {}

dependencies:

- core/jquery

- core/drupal

- core/drupalSettings
public/public.libraries.yml
Añadir css/js
function public_preprocess_breadcrumb(&$variables){



//Add current page to breadcrumb.

$request = Drupal::request();

$route_match = Drupal::routeMatch();

$page_title = Drupal::service('title_resolver')-
>getTitle($request, $route_match->getRouteObject());

$variables['breadcrumb'][] = array(

'text' => $page_title,

);

}
public/public.theme
Preprocess
{% if breadcrumb %}

<nav class="breadcrumbs" role="navigation" aria-labelledby="system-
breadcrumb">

<h2 class="visually-hidden">{{ 'Breadcrumb'|t }}</h2>

<ol class="itemlistbread">

{% for item in breadcrumb %}

<li class="itembread">

{% if item.url %}

<a href="{{ item.url }}" class="itembread__link">{{ item.text }}</a>

{% else %}

<span>{{ item.text }}</span>

{% endif %}

</li>

{% endfor %}

</ol>

</nav>

{% endif %}
public/templates/elements/breadcrumb.html.twig
Twig
<?php
db_query('DROP TABLE {users}’);
?>
<?php
db_query('DROP TABLE {users}’);
?>
twig.config:

debug: true
sites/default/default.services.yml
Twig debug
Pausa para chiste
Deberes
• Caché

• Composer

• REST

• Migrate

• … Infinitas cosas.
Drupalcamp 2016
Granada del 19 al 24 de Abril
¿Preguntas?
Buenas gracias
y muchas tardes
@estoyausenteSamuel Solís

More Related Content

What's hot

Pourquoi WordPress n’est pas un CMS
Pourquoi WordPress n’est pas un CMSPourquoi WordPress n’est pas un CMS
Pourquoi WordPress n’est pas un CMSThomas Gasc
 
20. CodeIgniter edit images
20. CodeIgniter edit images20. CodeIgniter edit images
20. CodeIgniter edit images
Razvan Raducanu, PhD
 
16. CodeIgniter stergerea inregistrarilor
16. CodeIgniter stergerea inregistrarilor16. CodeIgniter stergerea inregistrarilor
16. CodeIgniter stergerea inregistrarilor
Razvan Raducanu, PhD
 
Dress Your WordPress with Child Themes
Dress Your WordPress with Child ThemesDress Your WordPress with Child Themes
Dress Your WordPress with Child Themes
Laurie M. Rauch
 
Gravity Forms Hooks & Filters
Gravity Forms Hooks & FiltersGravity Forms Hooks & Filters
Gravity Forms Hooks & Filtersiamdangavin
 
Drupal 8 版型開發變革
Drupal 8 版型開發變革Drupal 8 版型開發變革
Drupal 8 版型開發變革
Chris Wu
 
Form API Intro
Form API IntroForm API Intro
Form API Intro
Jeff Eaton
 
TICT #13
TICT #13TICT #13
TICT #13
azman_awan9
 
12. edit record
12. edit record12. edit record
12. edit record
Razvan Raducanu, PhD
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax pluginsInbal Geffen
 
TICT #11
TICT #11 TICT #11
TICT #11
azman_awan9
 
AngularJS Compile Process
AngularJS Compile ProcessAngularJS Compile Process
AngularJS Compile Process
Eyal Vardi
 
WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes
Paul Bearne
 
8. vederea inregistrarilor
8. vederea inregistrarilor8. vederea inregistrarilor
8. vederea inregistrarilor
Razvan Raducanu, PhD
 
FLOW3, Extbase & Fluid cook book
FLOW3, Extbase & Fluid cook bookFLOW3, Extbase & Fluid cook book
FLOW3, Extbase & Fluid cook book
Bastian Waidelich
 
Let's write secure drupal code!
Let's write secure drupal code!Let's write secure drupal code!
Let's write secure drupal code!
Balázs Tatár
 
10. view one record
10. view one record10. view one record
10. view one record
Razvan Raducanu, PhD
 

What's hot (19)

Pourquoi WordPress n’est pas un CMS
Pourquoi WordPress n’est pas un CMSPourquoi WordPress n’est pas un CMS
Pourquoi WordPress n’est pas un CMS
 
20. CodeIgniter edit images
20. CodeIgniter edit images20. CodeIgniter edit images
20. CodeIgniter edit images
 
16. CodeIgniter stergerea inregistrarilor
16. CodeIgniter stergerea inregistrarilor16. CodeIgniter stergerea inregistrarilor
16. CodeIgniter stergerea inregistrarilor
 
Dress Your WordPress with Child Themes
Dress Your WordPress with Child ThemesDress Your WordPress with Child Themes
Dress Your WordPress with Child Themes
 
Gravity Forms Hooks & Filters
Gravity Forms Hooks & FiltersGravity Forms Hooks & Filters
Gravity Forms Hooks & Filters
 
Drupal 8 版型開發變革
Drupal 8 版型開發變革Drupal 8 版型開發變革
Drupal 8 版型開發變革
 
Form API Intro
Form API IntroForm API Intro
Form API Intro
 
TICT #13
TICT #13TICT #13
TICT #13
 
12. edit record
12. edit record12. edit record
12. edit record
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax plugins
 
TICT #11
TICT #11 TICT #11
TICT #11
 
AngularJS Compile Process
AngularJS Compile ProcessAngularJS Compile Process
AngularJS Compile Process
 
WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes WordPress overloading Gravityforms using hooks, filters and extending classes
WordPress overloading Gravityforms using hooks, filters and extending classes
 
8. vederea inregistrarilor
8. vederea inregistrarilor8. vederea inregistrarilor
8. vederea inregistrarilor
 
Borrados
BorradosBorrados
Borrados
 
FLOW3, Extbase & Fluid cook book
FLOW3, Extbase & Fluid cook bookFLOW3, Extbase & Fluid cook book
FLOW3, Extbase & Fluid cook book
 
Lecture n
Lecture nLecture n
Lecture n
 
Let's write secure drupal code!
Let's write secure drupal code!Let's write secure drupal code!
Let's write secure drupal code!
 
10. view one record
10. view one record10. view one record
10. view one record
 

Viewers also liked

50 упражнений, чтобы выучить язык жестов
50 упражнений, чтобы выучить язык жестов50 упражнений, чтобы выучить язык жестов
50 упражнений, чтобы выучить язык жестов
инна ветрова
 
Portfolio
PortfolioPortfolio
Portfolio
Cartersunwall
 
Las meninas
Las meninasLas meninas
Las meninas
xavi cuyas
 
Evaluation Question 4
Evaluation Question 4Evaluation Question 4
Evaluation Question 4
Penny Watkins
 
Portfolio Task Evaluation
Portfolio Task EvaluationPortfolio Task Evaluation
Portfolio Task Evaluation
rosstclrichardson
 
Asistencia junio 26 2014
Asistencia junio 26 2014Asistencia junio 26 2014
Asistencia junio 26 2014Rosaura2828
 
ACHIEVING SUPERIOR SERVCES GROUP PHOT
ACHIEVING SUPERIOR SERVCES GROUP PHOTACHIEVING SUPERIOR SERVCES GROUP PHOT
ACHIEVING SUPERIOR SERVCES GROUP PHOTShahnawaz Khan
 
VIH ESCLEROSIS MULTIPLE WILSON
VIH ESCLEROSIS MULTIPLE WILSONVIH ESCLEROSIS MULTIPLE WILSON
VIH ESCLEROSIS MULTIPLE WILSON
Caribbean international University
 
2
22
Health Magazine Construction
Health Magazine ConstructionHealth Magazine Construction
Health Magazine Construction
rosstclrichardson
 
Snow Plow
Snow PlowSnow Plow
Snow Plow
nina burkholder
 
Dinero Inteligente
Dinero InteligenteDinero Inteligente
Dinero Inteligente
carmen_sofi
 
Be watter with Spark
Be watter with SparkBe watter with Spark
Be watter with Spark
Sergio Gómez
 
FSIG Expert Fabry Conference - 14 February 2014
FSIG Expert Fabry Conference - 14 February 2014FSIG Expert Fabry Conference - 14 February 2014
FSIG Expert Fabry Conference - 14 February 2014
Fabry Support & Information Group
 
shopper marketing 4.0
 shopper marketing 4.0 shopper marketing 4.0
shopper marketing 4.0
SINERGIA-GROUP
 
Production diary day 3
Production diary day 3Production diary day 3
Production diary day 3
13brooksb
 
Vontade de adorar eyshila
Vontade de adorar   eyshilaVontade de adorar   eyshila
Presentation_Sahil Singh_26.11.15
Presentation_Sahil Singh_26.11.15Presentation_Sahil Singh_26.11.15
Presentation_Sahil Singh_26.11.15Sahil Singh Kapoor
 

Viewers also liked (20)

50 упражнений, чтобы выучить язык жестов
50 упражнений, чтобы выучить язык жестов50 упражнений, чтобы выучить язык жестов
50 упражнений, чтобы выучить язык жестов
 
Portfolio
PortfolioPortfolio
Portfolio
 
Las meninas
Las meninasLas meninas
Las meninas
 
Evaluation Question 4
Evaluation Question 4Evaluation Question 4
Evaluation Question 4
 
Portfolio Task Evaluation
Portfolio Task EvaluationPortfolio Task Evaluation
Portfolio Task Evaluation
 
Asistencia junio 26 2014
Asistencia junio 26 2014Asistencia junio 26 2014
Asistencia junio 26 2014
 
ACHIEVING SUPERIOR SERVCES GROUP PHOT
ACHIEVING SUPERIOR SERVCES GROUP PHOTACHIEVING SUPERIOR SERVCES GROUP PHOT
ACHIEVING SUPERIOR SERVCES GROUP PHOT
 
VIH ESCLEROSIS MULTIPLE WILSON
VIH ESCLEROSIS MULTIPLE WILSONVIH ESCLEROSIS MULTIPLE WILSON
VIH ESCLEROSIS MULTIPLE WILSON
 
2
22
2
 
1.GHLR.GuatemalaAssessment.Narrative
1.GHLR.GuatemalaAssessment.Narrative1.GHLR.GuatemalaAssessment.Narrative
1.GHLR.GuatemalaAssessment.Narrative
 
Health Magazine Construction
Health Magazine ConstructionHealth Magazine Construction
Health Magazine Construction
 
Snow Plow
Snow PlowSnow Plow
Snow Plow
 
Dinero Inteligente
Dinero InteligenteDinero Inteligente
Dinero Inteligente
 
Be watter with Spark
Be watter with SparkBe watter with Spark
Be watter with Spark
 
FSIG Expert Fabry Conference - 14 February 2014
FSIG Expert Fabry Conference - 14 February 2014FSIG Expert Fabry Conference - 14 February 2014
FSIG Expert Fabry Conference - 14 February 2014
 
shopper marketing 4.0
 shopper marketing 4.0 shopper marketing 4.0
shopper marketing 4.0
 
Production diary day 3
Production diary day 3Production diary day 3
Production diary day 3
 
Vencer é preciso daniel e samuel
Vencer é preciso   daniel e samuelVencer é preciso   daniel e samuel
Vencer é preciso daniel e samuel
 
Vontade de adorar eyshila
Vontade de adorar   eyshilaVontade de adorar   eyshila
Vontade de adorar eyshila
 
Presentation_Sahil Singh_26.11.15
Presentation_Sahil Singh_26.11.15Presentation_Sahil Singh_26.11.15
Presentation_Sahil Singh_26.11.15
 

Similar to Drupal 8 simple page: Mi primer proyecto en Drupal 8.

Drupal8 simplepage v2
Drupal8 simplepage v2Drupal8 simplepage v2
Drupal8 simplepage v2
Samuel Solís Fuentes
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
Jeff Eaton
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Acquia
 
Drupal 8 Services And Dependency Injection
Drupal 8 Services And Dependency InjectionDrupal 8 Services And Dependency Injection
Drupal 8 Services And Dependency Injection
Philip Norton
 
Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011
Jacopo Romei
 
Drupalcon 2023 - How Drupal builds your pages.pdf
Drupalcon 2023 - How Drupal builds your pages.pdfDrupalcon 2023 - How Drupal builds your pages.pdf
Drupalcon 2023 - How Drupal builds your pages.pdf
Luca Lusso
 
2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages
sparkfabrik
 
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)arcware
 
What's new in the Drupal 7 API?
What's new in the Drupal 7 API?What's new in the Drupal 7 API?
What's new in the Drupal 7 API?
Alexandru Badiu
 
Drupal Render API
Drupal Render APIDrupal Render API
Drupal Render API
Pavel Makhrinsky
 
Migrate yourself. code -> module -> mind
Migrate yourself. code -> module -> mindMigrate yourself. code -> module -> mind
Migrate yourself. code -> module -> mind
Valentine Matsveiko
 
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
LEDC 2016
 
Learning the basics of the Drupal API
Learning the basics of the Drupal APILearning the basics of the Drupal API
Learning the basics of the Drupal API
Alexandru Badiu
 
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег Зинченко
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег ЗинченкоWebCamp: Developer Day: DDD in PHP on example of Symfony - Олег Зинченко
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег Зинченко
GeeksLab Odessa
 
Drupal 8 migrate!
Drupal 8 migrate!Drupal 8 migrate!
Drupal 8 migrate!
Pavel Makhrinsky
 
Fapi
FapiFapi
OOP Is More Than Cars and Dogs
OOP Is More Than Cars and DogsOOP Is More Than Cars and Dogs
OOP Is More Than Cars and Dogs
Chris Tankersley
 
Complex Sites with Silex
Complex Sites with SilexComplex Sites with Silex
Complex Sites with Silex
Chris Tankersley
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Phpfunkatron
 

Similar to Drupal 8 simple page: Mi primer proyecto en Drupal 8. (20)

Drupal8 simplepage v2
Drupal8 simplepage v2Drupal8 simplepage v2
Drupal8 simplepage v2
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8
 
Drupal 8 Services And Dependency Injection
Drupal 8 Services And Dependency InjectionDrupal 8 Services And Dependency Injection
Drupal 8 Services And Dependency Injection
 
Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011
 
Drupalcon 2023 - How Drupal builds your pages.pdf
Drupalcon 2023 - How Drupal builds your pages.pdfDrupalcon 2023 - How Drupal builds your pages.pdf
Drupalcon 2023 - How Drupal builds your pages.pdf
 
2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages
 
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
 
What's new in the Drupal 7 API?
What's new in the Drupal 7 API?What's new in the Drupal 7 API?
What's new in the Drupal 7 API?
 
Drupal Render API
Drupal Render APIDrupal Render API
Drupal Render API
 
Migrate yourself. code -> module -> mind
Migrate yourself. code -> module -> mindMigrate yourself. code -> module -> mind
Migrate yourself. code -> module -> mind
 
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
 
Learning the basics of the Drupal API
Learning the basics of the Drupal APILearning the basics of the Drupal API
Learning the basics of the Drupal API
 
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег Зинченко
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег ЗинченкоWebCamp: Developer Day: DDD in PHP on example of Symfony - Олег Зинченко
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег Зинченко
 
Drupal 8 migrate!
Drupal 8 migrate!Drupal 8 migrate!
Drupal 8 migrate!
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 
Fapi
FapiFapi
Fapi
 
OOP Is More Than Cars and Dogs
OOP Is More Than Cars and DogsOOP Is More Than Cars and Dogs
OOP Is More Than Cars and Dogs
 
Complex Sites with Silex
Complex Sites with SilexComplex Sites with Silex
Complex Sites with Silex
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
 

More from Samuel Solís Fuentes

El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)
Samuel Solís Fuentes
 
De managers y developers
De managers y developersDe managers y developers
De managers y developers
Samuel Solís Fuentes
 
Hábitos y consejos para sobrevivir a un trabajo sedentario
Hábitos y consejos para sobrevivir a un trabajo sedentarioHábitos y consejos para sobrevivir a un trabajo sedentario
Hábitos y consejos para sobrevivir a un trabajo sedentario
Samuel Solís Fuentes
 
Drupal intro for Symfony developers
Drupal intro for Symfony developersDrupal intro for Symfony developers
Drupal intro for Symfony developers
Samuel Solís Fuentes
 
Querying solr
Querying solrQuerying solr
Querying solr
Samuel Solís Fuentes
 
Las tripas de un sistema solr
Las tripas de un sistema solrLas tripas de un sistema solr
Las tripas de un sistema solr
Samuel Solís Fuentes
 
D8 Form api
D8 Form apiD8 Form api
Mejorar tu código mejorando tu comunicación
Mejorar tu código mejorando tu comunicaciónMejorar tu código mejorando tu comunicación
Mejorar tu código mejorando tu comunicación
Samuel Solís Fuentes
 
Custom entities in d8
Custom entities in d8Custom entities in d8
Custom entities in d8
Samuel Solís Fuentes
 
Como arreglar este desastre
Como arreglar este desastreComo arreglar este desastre
Como arreglar este desastre
Samuel Solís Fuentes
 
Drupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experienciaDrupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experiencia
Samuel Solís Fuentes
 
Mejorar tu código hablando con el cliente
Mejorar tu código hablando con el clienteMejorar tu código hablando con el cliente
Mejorar tu código hablando con el cliente
Samuel Solís Fuentes
 
Taller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulosTaller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulos
Samuel Solís Fuentes
 
Más limpio que un jaspe.
Más limpio que un jaspe.Más limpio que un jaspe.
Más limpio que un jaspe.
Samuel Solís Fuentes
 
Drupal as a framework
Drupal as a frameworkDrupal as a framework
Drupal as a framework
Samuel Solís Fuentes
 
Arquitectura de información en drupal
Arquitectura de información en drupalArquitectura de información en drupal
Arquitectura de información en drupal
Samuel Solís Fuentes
 
Drupal para desarrolladores
Drupal para desarrolladoresDrupal para desarrolladores
Drupal para desarrolladores
Samuel Solís Fuentes
 

More from Samuel Solís Fuentes (17)

El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)
 
De managers y developers
De managers y developersDe managers y developers
De managers y developers
 
Hábitos y consejos para sobrevivir a un trabajo sedentario
Hábitos y consejos para sobrevivir a un trabajo sedentarioHábitos y consejos para sobrevivir a un trabajo sedentario
Hábitos y consejos para sobrevivir a un trabajo sedentario
 
Drupal intro for Symfony developers
Drupal intro for Symfony developersDrupal intro for Symfony developers
Drupal intro for Symfony developers
 
Querying solr
Querying solrQuerying solr
Querying solr
 
Las tripas de un sistema solr
Las tripas de un sistema solrLas tripas de un sistema solr
Las tripas de un sistema solr
 
D8 Form api
D8 Form apiD8 Form api
D8 Form api
 
Mejorar tu código mejorando tu comunicación
Mejorar tu código mejorando tu comunicaciónMejorar tu código mejorando tu comunicación
Mejorar tu código mejorando tu comunicación
 
Custom entities in d8
Custom entities in d8Custom entities in d8
Custom entities in d8
 
Como arreglar este desastre
Como arreglar este desastreComo arreglar este desastre
Como arreglar este desastre
 
Drupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experienciaDrupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experiencia
 
Mejorar tu código hablando con el cliente
Mejorar tu código hablando con el clienteMejorar tu código hablando con el cliente
Mejorar tu código hablando con el cliente
 
Taller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulosTaller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulos
 
Más limpio que un jaspe.
Más limpio que un jaspe.Más limpio que un jaspe.
Más limpio que un jaspe.
 
Drupal as a framework
Drupal as a frameworkDrupal as a framework
Drupal as a framework
 
Arquitectura de información en drupal
Arquitectura de información en drupalArquitectura de información en drupal
Arquitectura de información en drupal
 
Drupal para desarrolladores
Drupal para desarrolladoresDrupal para desarrolladores
Drupal para desarrolladores
 

Recently uploaded

Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 

Recently uploaded (20)

Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 

Drupal 8 simple page: Mi primer proyecto en Drupal 8.