SlideShare una empresa de Scribd logo
@osrecio@osrecio 30/06/2017
De 0 a 100 con
Magento 2
2
@osrecio 30/06/2017
Óscar Recio
Lead Magento Developer
Mi previsión de #eCommerce para 2017 es:
"El humo se disipa"
@osrecio
osrecio
osrecio
osrecio.com
@osrecio 30/06/2017
Interactiv4
4
@osrecio 30/06/2017
Entorno Desarrollo Despliegue Consejos
¿ Qué vamos a ver ?
5
@osrecio 30/06/2017
Entorno
6
@osrecio 30/06/2017
Sistema Operativo
Linux Mac Win
Entorno
7
@osrecio 30/06/2017
Sistema Operativo
Linux Mac Win
Entorno
8
@osrecio 30/06/2017
Setup
PHP
PHP-FPM
Apache
Nginx
Mysql
Percona
MariaDb
Magento CE
Magento EE
PHP HTTP Mysql Magento
Entorno
9
@osrecio 30/06/2017
Setup
LAMP || MAMP
Linux/MacOS Apache + Mysql + PHP,
Es la opción más conocida popularmente
LEMP || MEMP
Linux/MacOS Nginx + Mysql + PHP,
Misma opción que L/MAMP pero con Nginx
LARAVEL VALET*
Sólo disponible para Mac
La forma más sencilla y rápida de montarse un env local
VAGRANT
Nos permite construir nuestras máquinas virtuales de
una forma rápida y automática
DOCKER
Conteneriza tu aplicación para que sea portable
Cada tecnología debería estar en 1 contenedor
Entorno
10
@osrecio 30/06/2017
Herramientas
Terminal
La principal herramienta de cualquier desarrollador. No le tengáis miedo, no muerde y
seguramente te ahorre mucho tiempo.
1
IDE ~ PHPStorm
Principalmente donde vamos a pasar el rato implementando nuestros módulo, temas,
etc. Es dónde ocurre la magia.
2
DBMS
Nuestro gestor de bases de datos. Si le prestamos atención podemos salvar segundos y
deadlocks de nuestro día a día.
3
Browser
Dónde la gente común ve cosas y compra sin saber el iceberg que hay por debajo.4
Photoshop / Gimp / Pixelmator
Tower / Sourcetree / GitKraken
Postman / Boomerang / Soap UI
Nyancat / Cmatrix / Hacker Typer
Sublime / Atom / Vim
git / tig / ssg / htop / ncdu
Entorno
11
@osrecio 30/06/2017
Desarrollo
12
@osrecio 30/06/2017
Creación de Componente
Módulos / Lenguajes / Temas / Librerías
Componente Magento 2
Semver
KeepChangeLog
Composer
1
2
4
Versionado semántico de nuestros módulos.
MAJOR versión: al realizar cambios de API incompatibles.
MINOR versión: cuando se agrega funcionalidad de una manera compatible con versiones anteriores.
PATCH versión: es cuando haces correcciones de errores compatibles con versiones anteriores.
Es el archivo que contiene una lista ordenada cronológicamente de cambios notables
para cada versión de un componente.
Es el fichero que definirá sus dependencias con otros componentes a la hora de
instalarse, además de informar de incompatibilidades con diferentes versiones etc.
3
MAJOR.MINOR.PATCH
README
Tu archivo README es normalmente el primer punto de entrada a tu código. Debe describir para que
se debe usar tu componente, cómo pueden instalarlo y cómo pueden usarlo.
Desarrollo
13
@osrecio 30/06/2017
Creación de módulo
Estructura básica
Desarrollo
Presentation Logic
Request handling
Configuration
Translations
Tests
Rendering
Register to App
Business Logic
14
@osrecio 30/06/2017
Optimiza tu tiempo
magento2-phpstorm-templates
phpstorm-live-templates-magento-2
LiveTemplates
pestle
Mage2gen
magento2-code-generator
Code Generation
n98-magerun2
n98-magerun
22%
41%
10%
25%
Este plugin ha salvado a más de un
desarrollador
Magicento
Desarrollo
Saber más
phpstorm directory types
Directory Types PHPStorm
2%
15
@osrecio 30/06/2017
Calidad de código
Mientras esculpes código te
irá informando de tus errores
PHPCS - PHPCBF / PHPMD
Siempre hay que pasar los test
Test
No se hace push si hay errores
GrumPHP
Una vez hemos pasado los
anteriores steps, estamos
listos para pushear
Push
Automated Code Review
Codacy / CodeClimate
Desarrollo
16
@osrecio 30/06/2017
Desarrollo
$ composer global require phpmd/phpmd
$ composer config -g repositories.magento composer https://repo.magento.com
$ composer global require magento-ecg/coding-standard
$ composer global require magento/marketplace-eqp
$ export PATH="$PATH:$HOME/.composer/vendor/bin" #Add to .zshrc .bashrc etc
$ phpcs --config-set installed_paths $HOME/.composer/vendor/magento-ecg/coding-standard/,$HOME/.composer/vendor/magento/marketplace-eqp/
$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend, Ecg, EcgM2, MEQP1 and MEQP2
PHPStorm
phpcs
Preferences > Languages & Frameworks > PHP > Code Sniffer : ~/.composer/vendor/bin/phpcs
Preferences > Editor > Inspections > PHP > PHP Code Sniffer validation: select standard from list
phpmd
Preferences > Languages & Frameworks > PHP > Mess Detector : ~/.composer/vendor/bin/phpmd
Preferences > Editor > Inspections > PHP > PHP Code Mess Detector validation: {magento_root}/dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml
Configurar PHPCS / PHPMD
Calidad de código
17
@osrecio 30/06/2017
Desarrollo
Tests
Calidad de código
./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist
Lanzar todos los tests
./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist
app/code/Example/Module/Test/Unit
Lanzar los tests de un módulo
DevDocs Magento
Configurar PHPStorm
magento dev:tests:run <test> <<all, unit,
integration, integration-all, static, static-all,
integrity, legacy, default>>
Lanzar tests desde Magento CLI
18
@osrecio 30/06/2017
Trabajar con ComposerDesarrollo
Dependency Manager for PHP
19
@osrecio 30/06/2017
Composer
¿ Cómo funciona ?
Resolve
dependencies
Generate
composer.lock
Download
packages
composer.json
Desarrollo
20
@osrecio 30/06/2017
Composer
¿ Cómo funciona ?
Satis
Repo
Resolve
dependencies
Generate
composer.lock
Download
packages
composer.json
Desarrollo
21
@osrecio 30/06/2017
Desarrollo
$ composer create-project composer/satis --stability=dev --keep-vcs
$ echo ‘{
"name": "Satis Repository",
"homepage": "http://repo.osrecio.com",
"repositories": [
{ "type": "vcs", "url": "https://github.com/osrecio/privaterepo" },
{ "type": "vcs", "url": "http://bitbuclet.org/private/repo" },
{ "type": "composer", "url": "https://repo.magento.com" }
],
"require-all": true
}
‘ > packages.conf
$ php ./satis/bin/satis build ./packages.conf ./packages-mirror
$ php -S localhost:8888 -t ./packages-mirror/
Trabajar con Composer
Satis
Saber más
22
@osrecio 30/06/2017
Trabajar con ComposerDesarrollo
Crear componente aséptico
Crear subcarpeta
Create Subfolder with unique
name
Require component
Add `require` in project
`composer.json`
Crear carpeta
Create Folder in root project
named `i4modules`
Añadir structura componente
Add module structure, `README.md`,
`CHANGELOG.md`, `composer.json` and
`src` (inside this folder will be the
module)
Repository path
Add repository type path
Begin to develop
Empieza con tu lógica de negocio
23
@osrecio 30/06/2017
Trabajar con ComposerDesarrollo
Crear componente aséptico EJEMPLO
24
@osrecio 30/06/2017
Trabajar con ComposerDesarrollo
“Paquetiza” un componente creado previamente
Componente
“Paquetizado”
Copiar componente
Añadir git
Crear tag y push
4
5
6
1
2
3
Crear carpeta
Crear Subcarpeta
Crear estructura comp.
Create Folder named
`i4modules`
Create Subfolder with unique
name
Create Subfolder `src`, add
`README.md`,
`CHANGELOG.md` and
`composer.json`
Copy Module from
`app/code/Interactiv4/{moduleN
ame}` to folder `src`
Init Git, Add Remote, Add files,
Commit Files
Create git tag with same version of
`composer.json`, Push your code to
repo with tag
Como resultado tenemos un repo
que podemos añadir a packagist o a
nuestro Satis
25
@osrecio 30/06/2017
Despliegue
26
@osrecio 30/06/2017
Deploy Tools
Opciones
Remote server automation and
deployment tool written in Ruby
Capistrano
Magento2 Deployment Setup using
Robo and Deployer
MageDeploy2
Deployment tool for PHP
Deployer
Deployment tool for Magento 2
created with PHing
Magento 2 Deploy Tool
Despliegue
27
@osrecio 30/06/2017
CI / CD
Continous Integration / Continous Delivery
CodeShip
CodeFresh
Jenkins
GitLab CI / Bitbucket Pipelines *
Circle CI
Despliegue
28
@osrecio 30/06/2017
Ejemplo
Despliegue en Producción
Despliegue
29
@osrecio 30/06/2017
Ejemplo
Despliegue en Producción
Run Build
Trigger Deploy from Jenkins
Run Tests
Run Integration, unit, static
tests
Build Assets
Change to production mode,
deploy:compile and
deploy:static:content
Deploy
Multistage deploy with
deployer
Create Artifacts
Create zip of project to being
deployed to prod env.Tool Setup
Install or update tools for
deploymentMagento Setup
Clone Repository
Update composer
Despliegue
30
@osrecio 30/06/2017
Consejos
31
@osrecio 30/06/2017
Tips and Tricks
1
Utiliza hirak/prestissimo para paralelizar la descargas con
composer
2
Deshabilita el módulo: Magento_Version
3
Parchea Magento a través de composer. James Cowie te
explica cómo
4
Ten siempre en tus proyectos una Developer Toolbar, aquí te
dejo un par: DT1 y DBT2
5
Si no sabes dónde encontrar cosas de Magento aquí te dejo
un par de resources: Awesome Magento 2 y Mageres
6
Sino te acuerdas de todos los comandos del magento cli y
estás todo el día con el grep, usa este autocomplete
7
Lee todos los #MagentoMonday que hace Sherrie si quieres
estar al día. Están en los foros de Magento
8
Sígueme en Twitter
Consejos
32
@osrecio 30/06/2017
Mis consejos
“Pasa algún tiempo investigando y
planificando tareas para dar una
estimación precisa”
Piensa y luego estima
“El mal no deja de estar equivocado
porque la mayoría participe en el”
El Core no es el Santo Grial
“No soy un excelente programador;
Soy un buen programador con
excelentes hábitos”
Testea todo lo que puedas
“Los pequeños detalles son vitales.
Las pequeñas cosas hacen que
sucedan grandes cosas”
Cada detalle importa
“La satisfacción radica en el
esfuerzo, no en el logro, el pleno
esfuerzo es la victoria completa”
Satisfacción
“La innovación distingue a un líder
de un seguidor”
Innova
Consejos
@osrecio 30/06/2017
¿ Preguntas ?
Gracias
@osrecio

Más contenido relacionado

PDF
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
PDF
Mikel Ruiz - Magento X-Files
PPTX
Turbogears
PDF
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación
PDF
De 0 a 100 con Magento 2
DOCX
Turbogears_Instalación
PDF
Gestión del software con Maven y Jenkins
PDF
Magento 2 Code Generation Tools
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Mikel Ruiz - Magento X-Files
Turbogears
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación
De 0 a 100 con Magento 2
Turbogears_Instalación
Gestión del software con Maven y Jenkins
Magento 2 Code Generation Tools

La actualidad más candente (20)

PPTX
Framework
PDF
97132962-instalacion-de-open meetings-en-squeeze
DOCX
Manual de usuario crud django
PDF
Introducción a PHPUnit
PDF
Tutorialdenetbeansyopenglpedrolopezsalazar 120103154712-phpapp02
DOCX
Instalación y configuración glpi
PDF
Semana 2 Arquitectura web y HTML 5
PDF
Activar hyper v en windows 8
PPTX
Webinar 5 net5-2021
PDF
Quitar Adobe Flash Player Is Out
PPTX
Laravel 4.2 pdf
PDF
04 taller-django
PPSX
CodeCamp 2010 | Diez formas de escribir código (in)seguro
PDF
ocs inventory gpli gestor incidencias castellano
PDF
Turbo pascal
PDF
Plugins recomendados para WordPress y cómo crear uno
PDF
Metodología de trabajo con SVN
PPTX
01- instalacion de laravel 5+ (dos formas sencillas )
Framework
97132962-instalacion-de-open meetings-en-squeeze
Manual de usuario crud django
Introducción a PHPUnit
Tutorialdenetbeansyopenglpedrolopezsalazar 120103154712-phpapp02
Instalación y configuración glpi
Semana 2 Arquitectura web y HTML 5
Activar hyper v en windows 8
Webinar 5 net5-2021
Quitar Adobe Flash Player Is Out
Laravel 4.2 pdf
04 taller-django
CodeCamp 2010 | Diez formas de escribir código (in)seguro
ocs inventory gpli gestor incidencias castellano
Turbo pascal
Plugins recomendados para WordPress y cómo crear uno
Metodología de trabajo con SVN
01- instalacion de laravel 5+ (dos formas sencillas )
Publicidad

Similar a Oscar recio - De 0 a 100 con Magento 2 (20)

PDF
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
PPTX
De Magento 1 Community a Magento 2 Enterprise sin escalas. Meet Magento Argen...
ODP
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
PPTX
Magallanes - PHPmvd Meet Up - Mayo 2014
PPT
2015 presentation corporate_alfa9_cast
PDF
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
PPTX
Magento 2 Módulo Low Stock Notifier
PPTX
Presentación de Lyracons en el Meet Magento Argentina 2017
PPT
ALFA9 Presentación Corporativa de Servicios 2014
PDF
Desarrollo web el mejor aliado del Marketing Digital
PPTX
Tutorial Magento
KEY
Symfony y 3 millones de usuarios, nuestro dia a dia
PDF
Deployer PHP. Presentación para #PHPSevilla
PPTX
MM15AR - Magento 2: Basado en una historia real
PDF
Curso de Magento 1.9: Unidad Didáctica 01 Instalacion
PPTX
Dossier de Magento
PPTX
Magento
PDF
Despliegue de aplicaciones PHP
PPTX
Magento, uso, desarrollo y diseño
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
De Magento 1 Community a Magento 2 Enterprise sin escalas. Meet Magento Argen...
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Magallanes - PHPmvd Meet Up - Mayo 2014
2015 presentation corporate_alfa9_cast
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
Magento 2 Módulo Low Stock Notifier
Presentación de Lyracons en el Meet Magento Argentina 2017
ALFA9 Presentación Corporativa de Servicios 2014
Desarrollo web el mejor aliado del Marketing Digital
Tutorial Magento
Symfony y 3 millones de usuarios, nuestro dia a dia
Deployer PHP. Presentación para #PHPSevilla
MM15AR - Magento 2: Basado en una historia real
Curso de Magento 1.9: Unidad Didáctica 01 Instalacion
Dossier de Magento
Magento
Despliegue de aplicaciones PHP
Magento, uso, desarrollo y diseño
Publicidad

Último (20)

PPTX
Presentación de Redes de Datos modelo osi
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPT
Que son las redes de computadores y sus partes
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
clase auditoria informatica 2025.........
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Presentación de Redes de Datos modelo osi
CyberOps Associate - Cisco Networking Academy
REDES INFORMATICAS REDES INFORMATICAS.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Sesion 1 de microsoft power point - Clase 1
Propuesta BKP servidores con Acronis1.pptx
Calidad desde el Docente y la mejora continua .pdf
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Que son las redes de computadores y sus partes
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Estrategia de apoyo tecnología miguel angel solis
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Estrategia de apoyo tecnología grado 9-3
clase auditoria informatica 2025.........
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN

Oscar recio - De 0 a 100 con Magento 2

  • 1. @osrecio@osrecio 30/06/2017 De 0 a 100 con Magento 2
  • 2. 2 @osrecio 30/06/2017 Óscar Recio Lead Magento Developer Mi previsión de #eCommerce para 2017 es: "El humo se disipa" @osrecio osrecio osrecio osrecio.com
  • 4. 4 @osrecio 30/06/2017 Entorno Desarrollo Despliegue Consejos ¿ Qué vamos a ver ?
  • 9. 9 @osrecio 30/06/2017 Setup LAMP || MAMP Linux/MacOS Apache + Mysql + PHP, Es la opción más conocida popularmente LEMP || MEMP Linux/MacOS Nginx + Mysql + PHP, Misma opción que L/MAMP pero con Nginx LARAVEL VALET* Sólo disponible para Mac La forma más sencilla y rápida de montarse un env local VAGRANT Nos permite construir nuestras máquinas virtuales de una forma rápida y automática DOCKER Conteneriza tu aplicación para que sea portable Cada tecnología debería estar en 1 contenedor Entorno
  • 10. 10 @osrecio 30/06/2017 Herramientas Terminal La principal herramienta de cualquier desarrollador. No le tengáis miedo, no muerde y seguramente te ahorre mucho tiempo. 1 IDE ~ PHPStorm Principalmente donde vamos a pasar el rato implementando nuestros módulo, temas, etc. Es dónde ocurre la magia. 2 DBMS Nuestro gestor de bases de datos. Si le prestamos atención podemos salvar segundos y deadlocks de nuestro día a día. 3 Browser Dónde la gente común ve cosas y compra sin saber el iceberg que hay por debajo.4 Photoshop / Gimp / Pixelmator Tower / Sourcetree / GitKraken Postman / Boomerang / Soap UI Nyancat / Cmatrix / Hacker Typer Sublime / Atom / Vim git / tig / ssg / htop / ncdu Entorno
  • 12. 12 @osrecio 30/06/2017 Creación de Componente Módulos / Lenguajes / Temas / Librerías Componente Magento 2 Semver KeepChangeLog Composer 1 2 4 Versionado semántico de nuestros módulos. MAJOR versión: al realizar cambios de API incompatibles. MINOR versión: cuando se agrega funcionalidad de una manera compatible con versiones anteriores. PATCH versión: es cuando haces correcciones de errores compatibles con versiones anteriores. Es el archivo que contiene una lista ordenada cronológicamente de cambios notables para cada versión de un componente. Es el fichero que definirá sus dependencias con otros componentes a la hora de instalarse, además de informar de incompatibilidades con diferentes versiones etc. 3 MAJOR.MINOR.PATCH README Tu archivo README es normalmente el primer punto de entrada a tu código. Debe describir para que se debe usar tu componente, cómo pueden instalarlo y cómo pueden usarlo. Desarrollo
  • 13. 13 @osrecio 30/06/2017 Creación de módulo Estructura básica Desarrollo Presentation Logic Request handling Configuration Translations Tests Rendering Register to App Business Logic
  • 14. 14 @osrecio 30/06/2017 Optimiza tu tiempo magento2-phpstorm-templates phpstorm-live-templates-magento-2 LiveTemplates pestle Mage2gen magento2-code-generator Code Generation n98-magerun2 n98-magerun 22% 41% 10% 25% Este plugin ha salvado a más de un desarrollador Magicento Desarrollo Saber más phpstorm directory types Directory Types PHPStorm 2%
  • 15. 15 @osrecio 30/06/2017 Calidad de código Mientras esculpes código te irá informando de tus errores PHPCS - PHPCBF / PHPMD Siempre hay que pasar los test Test No se hace push si hay errores GrumPHP Una vez hemos pasado los anteriores steps, estamos listos para pushear Push Automated Code Review Codacy / CodeClimate Desarrollo
  • 16. 16 @osrecio 30/06/2017 Desarrollo $ composer global require phpmd/phpmd $ composer config -g repositories.magento composer https://repo.magento.com $ composer global require magento-ecg/coding-standard $ composer global require magento/marketplace-eqp $ export PATH="$PATH:$HOME/.composer/vendor/bin" #Add to .zshrc .bashrc etc $ phpcs --config-set installed_paths $HOME/.composer/vendor/magento-ecg/coding-standard/,$HOME/.composer/vendor/magento/marketplace-eqp/ $ phpcs -i The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend, Ecg, EcgM2, MEQP1 and MEQP2 PHPStorm phpcs Preferences > Languages & Frameworks > PHP > Code Sniffer : ~/.composer/vendor/bin/phpcs Preferences > Editor > Inspections > PHP > PHP Code Sniffer validation: select standard from list phpmd Preferences > Languages & Frameworks > PHP > Mess Detector : ~/.composer/vendor/bin/phpmd Preferences > Editor > Inspections > PHP > PHP Code Mess Detector validation: {magento_root}/dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml Configurar PHPCS / PHPMD Calidad de código
  • 17. 17 @osrecio 30/06/2017 Desarrollo Tests Calidad de código ./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist Lanzar todos los tests ./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Example/Module/Test/Unit Lanzar los tests de un módulo DevDocs Magento Configurar PHPStorm magento dev:tests:run <test> <<all, unit, integration, integration-all, static, static-all, integrity, legacy, default>> Lanzar tests desde Magento CLI
  • 18. 18 @osrecio 30/06/2017 Trabajar con ComposerDesarrollo Dependency Manager for PHP
  • 19. 19 @osrecio 30/06/2017 Composer ¿ Cómo funciona ? Resolve dependencies Generate composer.lock Download packages composer.json Desarrollo
  • 20. 20 @osrecio 30/06/2017 Composer ¿ Cómo funciona ? Satis Repo Resolve dependencies Generate composer.lock Download packages composer.json Desarrollo
  • 21. 21 @osrecio 30/06/2017 Desarrollo $ composer create-project composer/satis --stability=dev --keep-vcs $ echo ‘{ "name": "Satis Repository", "homepage": "http://repo.osrecio.com", "repositories": [ { "type": "vcs", "url": "https://github.com/osrecio/privaterepo" }, { "type": "vcs", "url": "http://bitbuclet.org/private/repo" }, { "type": "composer", "url": "https://repo.magento.com" } ], "require-all": true } ‘ > packages.conf $ php ./satis/bin/satis build ./packages.conf ./packages-mirror $ php -S localhost:8888 -t ./packages-mirror/ Trabajar con Composer Satis Saber más
  • 22. 22 @osrecio 30/06/2017 Trabajar con ComposerDesarrollo Crear componente aséptico Crear subcarpeta Create Subfolder with unique name Require component Add `require` in project `composer.json` Crear carpeta Create Folder in root project named `i4modules` Añadir structura componente Add module structure, `README.md`, `CHANGELOG.md`, `composer.json` and `src` (inside this folder will be the module) Repository path Add repository type path Begin to develop Empieza con tu lógica de negocio
  • 23. 23 @osrecio 30/06/2017 Trabajar con ComposerDesarrollo Crear componente aséptico EJEMPLO
  • 24. 24 @osrecio 30/06/2017 Trabajar con ComposerDesarrollo “Paquetiza” un componente creado previamente Componente “Paquetizado” Copiar componente Añadir git Crear tag y push 4 5 6 1 2 3 Crear carpeta Crear Subcarpeta Crear estructura comp. Create Folder named `i4modules` Create Subfolder with unique name Create Subfolder `src`, add `README.md`, `CHANGELOG.md` and `composer.json` Copy Module from `app/code/Interactiv4/{moduleN ame}` to folder `src` Init Git, Add Remote, Add files, Commit Files Create git tag with same version of `composer.json`, Push your code to repo with tag Como resultado tenemos un repo que podemos añadir a packagist o a nuestro Satis
  • 26. 26 @osrecio 30/06/2017 Deploy Tools Opciones Remote server automation and deployment tool written in Ruby Capistrano Magento2 Deployment Setup using Robo and Deployer MageDeploy2 Deployment tool for PHP Deployer Deployment tool for Magento 2 created with PHing Magento 2 Deploy Tool Despliegue
  • 27. 27 @osrecio 30/06/2017 CI / CD Continous Integration / Continous Delivery CodeShip CodeFresh Jenkins GitLab CI / Bitbucket Pipelines * Circle CI Despliegue
  • 29. 29 @osrecio 30/06/2017 Ejemplo Despliegue en Producción Run Build Trigger Deploy from Jenkins Run Tests Run Integration, unit, static tests Build Assets Change to production mode, deploy:compile and deploy:static:content Deploy Multistage deploy with deployer Create Artifacts Create zip of project to being deployed to prod env.Tool Setup Install or update tools for deploymentMagento Setup Clone Repository Update composer Despliegue
  • 31. 31 @osrecio 30/06/2017 Tips and Tricks 1 Utiliza hirak/prestissimo para paralelizar la descargas con composer 2 Deshabilita el módulo: Magento_Version 3 Parchea Magento a través de composer. James Cowie te explica cómo 4 Ten siempre en tus proyectos una Developer Toolbar, aquí te dejo un par: DT1 y DBT2 5 Si no sabes dónde encontrar cosas de Magento aquí te dejo un par de resources: Awesome Magento 2 y Mageres 6 Sino te acuerdas de todos los comandos del magento cli y estás todo el día con el grep, usa este autocomplete 7 Lee todos los #MagentoMonday que hace Sherrie si quieres estar al día. Están en los foros de Magento 8 Sígueme en Twitter Consejos
  • 32. 32 @osrecio 30/06/2017 Mis consejos “Pasa algún tiempo investigando y planificando tareas para dar una estimación precisa” Piensa y luego estima “El mal no deja de estar equivocado porque la mayoría participe en el” El Core no es el Santo Grial “No soy un excelente programador; Soy un buen programador con excelentes hábitos” Testea todo lo que puedas “Los pequeños detalles son vitales. Las pequeñas cosas hacen que sucedan grandes cosas” Cada detalle importa “La satisfacción radica en el esfuerzo, no en el logro, el pleno esfuerzo es la victoria completa” Satisfacción “La innovación distingue a un líder de un seguidor” Innova Consejos
  • 33. @osrecio 30/06/2017 ¿ Preguntas ? Gracias @osrecio