SlideShare a Scribd company logo
Intro
is a web framework
Common Framework subsystems
Security
- Auth
- ACL
- ?
Database
- PDO
- ORM
- Migrations
- ?
Routing
AJAX/J
Web servises/resources
View
Ready… Steady… Migrate!
Migrate yourself!
Migrate yourself!: Porting a module guide
STEP #1
Rename my_module.info -> me_module.info.yml
AND…
Migrate yourself!: Porting a module guide
That’s all!
Congrats, you’re ported a module
lets make an adoptations now)))
Migrate yourself!: src / Mind
- OOP
- PSR-4
- Annotations
- Dependency Injection
- Service Containers
- Plugins
- Entities
/ CoreConcepts.php
Migrate yourself!: src / Mind / Annotations.php
@see core/lib/Drupal/Core/Annotation/Mail.php
/ CoreConcepts / DependencyInjection.php
DI is implementation of
the IoC design pattern
NO!
YES
/ CoreConcepts / DependencyInjection.php
/ CoreConcepts / ServiceContainers.php
@are Auto-instantiate service-oriented
actionable classes with all
registered dependencies
/ CoreConcepts / Plugins.php
“Plugin - A discreet class that executes an
operation within the context of a given
scope, as a means to extend Drupal’s
functionality”
/ CoreConcepts / Plugins.php
- Block
- FieldWidget
- FieldType
- Filter
- ImageEffect
- Tips
- Display
- ActionPlugin
- EntityTypePlugin
…...
USED IN:
ctools
- panels
- hybridauth
- feeds
- addressfield
fluxservice:
- own plugin system,
cfr
- own plugin system,
D8 D7
/ CoreConcepts / Plugins.php
- Lazy loaded
- Unified code (using interfaces)
- extensible
- reusable across a projects
- each plugin type should have own
plugin manager, wasted?
PROFIT
NOTICE
/ CoreConcepts / Plugins.php
Plugin Manager
Discovery
Factory
Mapper
STANDS ON
/ CoreConcepts / Plugins.php
AnnotatedClassDiscovery
HookDiscovery
YamlDiscovery
StaticDiscovery
DISCOVERY
/ CoreConcepts / Plugins.php
DEMO
/ CoreConcepts / Entity.php
ONLY DEMO :)
2X
Cache API
Drupal 7 caching style?
Forget it!
New Cache API
Drupal 8 Cache API
New Cache API
Request cache_default bin:
$cache = Drupal::cache();
Request a particular bin(cache_custom):
$custom_cache = Drupal::cache('custom');
Retrieve a cached data:
$data = Drupal::cache()->get('my_value');
Save data to the cache:
$data = Drupal::cache()->set('my_value', ['some_data']);
New Cache API
Cache tags
New Cache API
Invalidate a cache items with a particular tag(s):
DrupalCoreCacheCache::invalidateTags(array('node:5', 'my_tag'));
Retrieve an existent entity’s cache tags:
● DrupalCoreEntityEntityInterface::getCacheTags()
● DrupalCoreEntityEntityTypeInterface::getListCacheTags()
Cache tags allow us to invalidate caches more smartly.
New Cache API
Cache contexts
New Cache API
Cache contexts are analogous to HTTP's Vary header.
It helps Drupal to decide whether the cached response can be
used rather than requesting a fresh one.
Contexts examples:
theme (vary by negotiated theme)
user.roles (vary by the combination of roles)
languages (vary by all language types: interface, content …)
Routing
Drupal 8 Routing System
Routing
*.routing.yml
example.content:
path: '/example'
defaults:
_controller: 'DrupalexampleControllerExampleController::content'
_title: 'Hello World'
requirements:
_permission: 'access content'
_method: 'GET'
Routing
src/Controller/ExampleController.php:
class ExampleController extends ControllerBase {
/**
* {@inheritdoc}
*/
public function content() {
return ['#type' => 'markup', '#markup' => t('Hello World!')];
}
}
Routing
Arguments inside routes:
*.routing.yml
example.content:
path: '/example/{my_arg}'
defaults:
_controller: 'DrupalexampleControllerExampleController::content'
_title: 'Hello World'
requirements:
_permission: 'access content'
Routing
src/Controller/ExampleController.php:
class ExampleController extends ControllerBase {
/**
* {@inheritdoc}
*/
public function content($my_arg) {
return ['#type' => 'markup', '#markup' => $my_arg];
}
}
Form API
Form API
Form API
New Form(s) implementation
workflow
Form API
DrupalCoreFormFormInterface
- everything what you usually need!
- getFormId() - specify Form ID
- buildForm() - build form array
- validateForm() - form validation handler
- submitForm() - form submit handler
Form API
New HTML 5 elements:
● '#type' => 'tel'
● '#type' => 'email'
● '#type' => 'number'
● '#type' => 'date'
● '#type' => 'url'
● '#type' => 'search'
● '#type' => 'range'
● etc.
Form API
Not enought? - Create your own!
Form API
Integrate the form in a request:
mymodule.test_form:
path: 'mymodule/test_form'
defaults:
_form: 'DrupalmymoduleFormsExampleForm'
_title: 'Test form'
requirements:
_permission: 'access content'
Form API
Retrieving the form outside of routes:
$form = Drupal::formBuilder()
->getForm('DrupalexampleFormExampleForm');
Form API
Forms altering...doesn’t really changed
Form API
Rendering forms programmatically:
// Retrieve a form array.
$form = Drupal::formBuilder()
->getForm('DrupalexampleFormExampleForm');
// Render it.
$rendered_form = Drupal::service('renderer')
->render($form);
Libraries
Libraries
Libraries
*.libraries.yml:
my_library:
version: 1.x
css:
theme:
css/styles.css: {}
js:
js/script.js: {}
dependencies:
- core/drupal
Libraries
Attaching libraries:
function mymodule_element_info_alter(array &$types) {
$types['table']['#attached']['library'][] = 'mymodule/my_library';
}
Note: Can be attached to any render-able array.
Libraries
Twig attach libraries:
{{ attach_library('mymodule/my_library') }}
<div>Some markup {{ message }}</div>
Libraries
Disable aggregation:
my_library:
version: 1.x
css:
theme:
css/style.css: {preprocess: false}
js:
js/script.js: {preprocess: false}
Libraries
CDN/externally hosted libraries:
angular.angularjs:
remote: https://github.com/angular/angular.js
version: 1.4.4
js:
https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js: {
type: external, minified: true }
Libraries
Inline JavaScript is highly discouraged!
Migrate yourself!: src / Module / Multilingual / ConfigVariables.php
Migrate yourself!: src / Module / Multilingual / ConfigVariables.php
STEP #1 add variables with text, string type to the
root of config_object var inside a
my_module.schema.yml
WARNING: works only with first level depth text-based elements
in the config_object
Migrate yourself!: src / Module / Multilingual / ConfigVariables.php
STEP #2 add default local task, my_module.links.task.yml
Migrate yourself!: src / Module / Multilingual / ConfigVariables.php
STEP #3 make config_object translateable
my_module.config_translation.yml
Migrate yourself!: src / Module / ViewsIntegration / CustomTable.php
@see core/modules/tracker/tracker.views.inc
Dev Tools
Don’t forget about a new Dev tools:
● Drupal console
● Kint
● REPL
● Webprofiler
Conclusion
is awesome!
Any questions?
Thanks!

More Related Content

What's hot

Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
Philip Norton
 
ACL in CodeIgniter
ACL in CodeIgniterACL in CodeIgniter
ACL in CodeIgniter
mirahman
 
Zend framework
Zend frameworkZend framework
Zend framework
Prem Shankar
 
Getting to The Loop - London Wordpress Meetup July 28th
Getting to The Loop - London Wordpress Meetup  July 28thGetting to The Loop - London Wordpress Meetup  July 28th
Getting to The Loop - London Wordpress Meetup July 28th
Chris Adams
 
Ajax Tags Advanced
Ajax Tags AdvancedAjax Tags Advanced
Ajax Tags Advanced
AkramWaseem
 
Zend Framework 1.9 Setup & Using Zend_Tool
Zend Framework 1.9 Setup & Using Zend_ToolZend Framework 1.9 Setup & Using Zend_Tool
Zend Framework 1.9 Setup & Using Zend_Tool
Gordon Forsythe
 
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 Connecting Content Silos: One CMS, Many Sites With The WordPress REST API Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
Caldera Labs
 
Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3
Kris Wallsmith
 
Config management
Config managementConfig management
Config management
Alexei Goja
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
Jeff Eaton
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
Oscar Merida
 
Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)
Kris Wallsmith
 
Acquia Drupal Certification
Acquia Drupal CertificationAcquia Drupal Certification
Acquia Drupal Certification
Philip Norton
 
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Caldera Labs
 
Introduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress DevelopersIntroduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress Developers
Caldera Labs
 
Zend Framework 1.8 Features Webinar
Zend Framework 1.8 Features WebinarZend Framework 1.8 Features Webinar
Zend Framework 1.8 Features Webinar
Ralph Schindler
 
Caldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW WorkshopCaldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW Workshop
CalderaLearn
 
Zend - Installation And Sample Project Creation
Zend - Installation And Sample Project Creation Zend - Installation And Sample Project Creation
Zend - Installation And Sample Project Creation
Compare Infobase Limited
 
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
 
JavaScript for Flex Devs
JavaScript for Flex DevsJavaScript for Flex Devs
JavaScript for Flex Devs
Aaronius
 

What's hot (20)

Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
ACL in CodeIgniter
ACL in CodeIgniterACL in CodeIgniter
ACL in CodeIgniter
 
Zend framework
Zend frameworkZend framework
Zend framework
 
Getting to The Loop - London Wordpress Meetup July 28th
Getting to The Loop - London Wordpress Meetup  July 28thGetting to The Loop - London Wordpress Meetup  July 28th
Getting to The Loop - London Wordpress Meetup July 28th
 
Ajax Tags Advanced
Ajax Tags AdvancedAjax Tags Advanced
Ajax Tags Advanced
 
Zend Framework 1.9 Setup & Using Zend_Tool
Zend Framework 1.9 Setup & Using Zend_ToolZend Framework 1.9 Setup & Using Zend_Tool
Zend Framework 1.9 Setup & Using Zend_Tool
 
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 Connecting Content Silos: One CMS, Many Sites With The WordPress REST API Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 
Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3Introducing Assetic: Asset Management for PHP 5.3
Introducing Assetic: Asset Management for PHP 5.3
 
Config management
Config managementConfig management
Config management
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
 
Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)
 
Acquia Drupal Certification
Acquia Drupal CertificationAcquia Drupal Certification
Acquia Drupal Certification
 
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
 
Introduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress DevelopersIntroduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress Developers
 
Zend Framework 1.8 Features Webinar
Zend Framework 1.8 Features WebinarZend Framework 1.8 Features Webinar
Zend Framework 1.8 Features Webinar
 
Caldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW WorkshopCaldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW Workshop
 
Zend - Installation And Sample Project Creation
Zend - Installation And Sample Project Creation Zend - Installation And Sample Project Creation
Zend - Installation And Sample Project Creation
 
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)
 
JavaScript for Flex Devs
JavaScript for Flex DevsJavaScript for Flex Devs
JavaScript for Flex Devs
 

Viewers also liked

بعثة سعيدة
 بعثة سعيدة    بعثة سعيدة
بعثة سعيدة
Ibrahim Alageel
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
Fabio Giannini
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
Fabio Giannini
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
Fabio Giannini
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
Fabio Giannini
 
Binus AIO group Big Bang Disruption 2016
Binus AIO group Big Bang Disruption 2016Binus AIO group Big Bang Disruption 2016
Binus AIO group Big Bang Disruption 2016
janu binus
 
2015 11 19_io_t.lt (1)
2015 11 19_io_t.lt (1)2015 11 19_io_t.lt (1)
2015 11 19_io_t.lt (1)
Yoshihiro Inoue
 
Artic Oil Spills
Artic Oil SpillsArtic Oil Spills
Artic Oil Spills
Kareina D'Souza
 
Maks Professional Portfolio
Maks Professional Portfolio Maks Professional Portfolio
Maks Professional Portfolio
Amr Noaman
 
Fernão Capello Gaivota
Fernão Capello GaivotaFernão Capello Gaivota
Fernão Capello Gaivota
Fabio Giannini
 
Hp visa restrictions index 160223
Hp visa restrictions index 160223Hp visa restrictions index 160223
Hp visa restrictions index 160223
Mangesh Kumar
 
بعثة سعيدة
بعثة سعيدة بعثة سعيدة
بعثة سعيدة
Ibrahim Alageel
 
ClimateChangeAdaptation
ClimateChangeAdaptationClimateChangeAdaptation
ClimateChangeAdaptation
Kareina D'Souza
 
Lakshmi Narasimha Prasanna G - 2016--
Lakshmi Narasimha Prasanna G - 2016--Lakshmi Narasimha Prasanna G - 2016--
Lakshmi Narasimha Prasanna G - 2016--
Lakshmi Narasimha Prasanna G
 
Open & Private Blockchains at CSCMP Benelux Supply Chain Event
Open & Private Blockchains at CSCMP Benelux Supply Chain EventOpen & Private Blockchains at CSCMP Benelux Supply Chain Event
Open & Private Blockchains at CSCMP Benelux Supply Chain Event
Sam Wouters
 

Viewers also liked (15)

بعثة سعيدة
 بعثة سعيدة    بعثة سعيدة
بعثة سعيدة
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
 
A pessoa errada
A pessoa erradaA pessoa errada
A pessoa errada
 
Binus AIO group Big Bang Disruption 2016
Binus AIO group Big Bang Disruption 2016Binus AIO group Big Bang Disruption 2016
Binus AIO group Big Bang Disruption 2016
 
2015 11 19_io_t.lt (1)
2015 11 19_io_t.lt (1)2015 11 19_io_t.lt (1)
2015 11 19_io_t.lt (1)
 
Artic Oil Spills
Artic Oil SpillsArtic Oil Spills
Artic Oil Spills
 
Maks Professional Portfolio
Maks Professional Portfolio Maks Professional Portfolio
Maks Professional Portfolio
 
Fernão Capello Gaivota
Fernão Capello GaivotaFernão Capello Gaivota
Fernão Capello Gaivota
 
Hp visa restrictions index 160223
Hp visa restrictions index 160223Hp visa restrictions index 160223
Hp visa restrictions index 160223
 
بعثة سعيدة
بعثة سعيدة بعثة سعيدة
بعثة سعيدة
 
ClimateChangeAdaptation
ClimateChangeAdaptationClimateChangeAdaptation
ClimateChangeAdaptation
 
Lakshmi Narasimha Prasanna G - 2016--
Lakshmi Narasimha Prasanna G - 2016--Lakshmi Narasimha Prasanna G - 2016--
Lakshmi Narasimha Prasanna G - 2016--
 
Open & Private Blockchains at CSCMP Benelux Supply Chain Event
Open & Private Blockchains at CSCMP Benelux Supply Chain EventOpen & Private Blockchains at CSCMP Benelux Supply Chain Event
Open & Private Blockchains at CSCMP Benelux Supply Chain Event
 

Similar to Migrate yourself. code -> module -> mind

CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
Bo-Yi Wu
 
Yii Introduction
Yii IntroductionYii Introduction
Yii Introduction
Jason Ragsdale
 
Web internship Yii Framework
Web internship  Yii FrameworkWeb internship  Yii Framework
Web internship Yii Framework
Noveo
 
Drupal Module Development
Drupal Module DevelopmentDrupal Module Development
Drupal Module Development
ipsitamishra
 
Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010
Siva Epari
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
funkatron
 
How to Create and Load Model in Laravel
How to Create and Load Model in LaravelHow to Create and Load Model in Laravel
How to Create and Load Model in Laravel
Yogesh singh
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
manugoel2003
 
Web applications with Catalyst
Web applications with CatalystWeb applications with Catalyst
Web applications with Catalyst
svilen.ivanov
 
AEM Sightly Deep Dive
AEM Sightly Deep DiveAEM Sightly Deep Dive
AEM Sightly Deep Dive
Gabriel Walt
 
Drupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp BratislavaDrupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp Bratislava
Gábor Hojtsy
 
Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016
Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016
Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016
Nicolás Bouhid
 
The Rails Way
The Rails WayThe Rails Way
The Rails Way
Michał Orman
 
WordPress Structure and Best Practices
WordPress Structure and Best PracticesWordPress Structure and Best Practices
WordPress Structure and Best Practices
markparolisi
 
Dependency injection in Drupal 8
Dependency injection in Drupal 8Dependency injection in Drupal 8
Dependency injection in Drupal 8
Alexei Gorobets
 
PHP MVC
PHP MVCPHP MVC
Php frameworks
Php frameworksPhp frameworks
Php frameworks
Anil Kumar Panigrahi
 
Exploring Symfony's Code
Exploring Symfony's CodeExploring Symfony's Code
Exploring Symfony's Code
Wildan Maulana
 
Django Vs Rails
Django Vs RailsDjango Vs Rails
Django Vs Rails
Sérgio Santos
 
Utilization of zend an ultimate alternate for intense data processing
Utilization of zend  an ultimate alternate for intense data processingUtilization of zend  an ultimate alternate for intense data processing
Utilization of zend an ultimate alternate for intense data processing
Career at Elsner
 

Similar to Migrate yourself. code -> module -> mind (20)

CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
Yii Introduction
Yii IntroductionYii Introduction
Yii Introduction
 
Web internship Yii Framework
Web internship  Yii FrameworkWeb internship  Yii Framework
Web internship Yii Framework
 
Drupal Module Development
Drupal Module DevelopmentDrupal Module Development
Drupal Module Development
 
Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
 
How to Create and Load Model in Laravel
How to Create and Load Model in LaravelHow to Create and Load Model in Laravel
How to Create and Load Model in Laravel
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
 
Web applications with Catalyst
Web applications with CatalystWeb applications with Catalyst
Web applications with Catalyst
 
AEM Sightly Deep Dive
AEM Sightly Deep DiveAEM Sightly Deep Dive
AEM Sightly Deep Dive
 
Drupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp BratislavaDrupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp Bratislava
 
Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016
Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016
Ajax on drupal the right way - DrupalCamp Campinas, São Paulo, Brazil 2016
 
The Rails Way
The Rails WayThe Rails Way
The Rails Way
 
WordPress Structure and Best Practices
WordPress Structure and Best PracticesWordPress Structure and Best Practices
WordPress Structure and Best Practices
 
Dependency injection in Drupal 8
Dependency injection in Drupal 8Dependency injection in Drupal 8
Dependency injection in Drupal 8
 
PHP MVC
PHP MVCPHP MVC
PHP MVC
 
Php frameworks
Php frameworksPhp frameworks
Php frameworks
 
Exploring Symfony's Code
Exploring Symfony's CodeExploring Symfony's Code
Exploring Symfony's Code
 
Django Vs Rails
Django Vs RailsDjango Vs Rails
Django Vs Rails
 
Utilization of zend an ultimate alternate for intense data processing
Utilization of zend  an ultimate alternate for intense data processingUtilization of zend  an ultimate alternate for intense data processing
Utilization of zend an ultimate alternate for intense data processing
 

Recently uploaded

制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
ukwwuq
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
saathvikreddy2003
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
cuobya
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 

Recently uploaded (20)

制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 

Migrate yourself. code -> module -> mind