The configuration management system in Drupal 8 seems like a great idea, but what is it? In this session I hope to show what configuration management is, why it is needed and how it will make all of our lives as Drupal site builders better.
The Drupal 8 Configuration Management Initiative (CMI) is a straight up game changer for Drupal development and deployment. As much as we all love doing it live, no longer will this kind of human powered configuration replay in production be necessary. Instead, developers will be able to natively export their configuration to code and deploy that configuration to production using the CMI tools.
This session will feature both a basic overview for how CMI will work in Drupal 8 and an advanced overview of how to use CMI with version control as part of a managed development -> testing -> production workflow. Forget the pain that was drush fe and drush fu-all. Come join Matt Cheney from Pantheon in embracing modern configuration management in all its glory.
Watch the session video: https://www.youtube.com/watch?v=Pl7-978oKNw
Drupal 8 Configuration Management with FeaturesNuvole
Configuration Management is one of the prominent new features coming with Drupal 8. The reference use case for Configuration Management in Drupal 8 is quite different than the standard Drupal 7 + Features use case, both for a site builder and for a developer. And the Features module in Drupal 8 will have to be used in a different way.
The configuration management system in Drupal 8 seems like a great idea, but what is it? In this session I hope to show what configuration management is, why it is needed and how it will make all of our lives as Drupal site builders better.
The Drupal 8 Configuration Management Initiative (CMI) is a straight up game changer for Drupal development and deployment. As much as we all love doing it live, no longer will this kind of human powered configuration replay in production be necessary. Instead, developers will be able to natively export their configuration to code and deploy that configuration to production using the CMI tools.
This session will feature both a basic overview for how CMI will work in Drupal 8 and an advanced overview of how to use CMI with version control as part of a managed development -> testing -> production workflow. Forget the pain that was drush fe and drush fu-all. Come join Matt Cheney from Pantheon in embracing modern configuration management in all its glory.
Watch the session video: https://www.youtube.com/watch?v=Pl7-978oKNw
Drupal 8 Configuration Management with FeaturesNuvole
Configuration Management is one of the prominent new features coming with Drupal 8. The reference use case for Configuration Management in Drupal 8 is quite different than the standard Drupal 7 + Features use case, both for a site builder and for a developer. And the Features module in Drupal 8 will have to be used in a different way.
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
There's plenty of material (documentation, blogs, books) out there that'll help
you write a site using Django... but then what? You've still got to test,
deploy, monitor, and tune the site; failure at deployment time means all your
beautiful code is for naught.
Tycho promises to merge the world of osgi/p2 with Maven apparently making it dead easy to build plugins.
The JBoss Tools and Developer Studio team moved to Tycho last year and with 350+ plugins we learned a lot about what Tycho can do and not do.
In this talk I will update on the Good, bad and ugly experiences we had and continue to have and discuss our recommendations on how to and how not use Tycho.
Slides from version given at EclipseCon 2012.
Recording available from EclipseCon Europe 2011 : http://www.fosslc.org/drupal/content/tycho-good-bad-and-ugly
How to be effective with JBoss Developer StudioMax Andersen
Abstract from JBoss World 2011:
How do you use JBoss Developer Studio effectively while developing applications based on JBoss technology? In this session, Max Rydahl Andersen will cover how you can use pure Eclipse to build multi-module projects, and also how you can make it fit into a Maven world.
Max will explain how you can deploy applications quickly and efficiently into local, remote hosts and even into the cloud.
Migrating to Drupal 8: How to Migrate Your Content and Minimize the RisksAcquia
Migrating to Drupal 8 might seem like a daunting task, but it doesn’t have to be. Sometimes, it is possible to migrate simply. Other times, the needs of the migration require customization of the migration, which can introduce significant challenges. However, with the right planning and processes in place, effectively migrating your content can be easy.
In this webinar, learn about the processes needed to effectively migrate your content to Drupal 8 from Drupal 6 or 7. We’ll cover the steps in the 5 phases of an effective migration: auditing your source site, planning a data model, prepping for and planning your migration strategy, and inevitably, launching the migration. Attendees will walk away with a deeper understanding of:
-How to audit your bundles, fields, and entities
-The steps to determine what needs to stay, go, and be modified
-How to work with the Migrate API and extend functionality with contrib migration modules
-The process to set up near-continuous migration of content in order to minimize downtime
-Ways to effectively create and implement a risk mitigation plan
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
There's plenty of material (documentation, blogs, books) out there that'll help
you write a site using Django... but then what? You've still got to test,
deploy, monitor, and tune the site; failure at deployment time means all your
beautiful code is for naught.
Tycho promises to merge the world of osgi/p2 with Maven apparently making it dead easy to build plugins.
The JBoss Tools and Developer Studio team moved to Tycho last year and with 350+ plugins we learned a lot about what Tycho can do and not do.
In this talk I will update on the Good, bad and ugly experiences we had and continue to have and discuss our recommendations on how to and how not use Tycho.
Slides from version given at EclipseCon 2012.
Recording available from EclipseCon Europe 2011 : http://www.fosslc.org/drupal/content/tycho-good-bad-and-ugly
How to be effective with JBoss Developer StudioMax Andersen
Abstract from JBoss World 2011:
How do you use JBoss Developer Studio effectively while developing applications based on JBoss technology? In this session, Max Rydahl Andersen will cover how you can use pure Eclipse to build multi-module projects, and also how you can make it fit into a Maven world.
Max will explain how you can deploy applications quickly and efficiently into local, remote hosts and even into the cloud.
Migrating to Drupal 8: How to Migrate Your Content and Minimize the RisksAcquia
Migrating to Drupal 8 might seem like a daunting task, but it doesn’t have to be. Sometimes, it is possible to migrate simply. Other times, the needs of the migration require customization of the migration, which can introduce significant challenges. However, with the right planning and processes in place, effectively migrating your content can be easy.
In this webinar, learn about the processes needed to effectively migrate your content to Drupal 8 from Drupal 6 or 7. We’ll cover the steps in the 5 phases of an effective migration: auditing your source site, planning a data model, prepping for and planning your migration strategy, and inevitably, launching the migration. Attendees will walk away with a deeper understanding of:
-How to audit your bundles, fields, and entities
-The steps to determine what needs to stay, go, and be modified
-How to work with the Migrate API and extend functionality with contrib migration modules
-The process to set up near-continuous migration of content in order to minimize downtime
-Ways to effectively create and implement a risk mitigation plan
Taking your module from Drupal 6 to Drupal 7Phase2
Learn how to take your module from D6 to D7 with this presentation from Senior Developer Tobby Hagler. This talk was given at CapitalCamp in Washington, DC.
Daniel Harris of WebDrips and Herón Ordóñez Guillén of Nvidia discuss Drupal migration and discuss their 'on the fly' upgrade of an Nvidia website from D6 to D7.
Creating and breaking a module in Drupal 8.
Configuration Steps: https://www.gitbook.com/book/zivtech/debug-tools-for-drupal8/details
Debug your PHP code efficiently without Devel module’s dpm(Drupal Print Message). With Drupal 8’s adoption of Symfony and object-oriented architecture, we need to adjust how we debug our code. Up until now, many of us have been using the convenient dpm function for debugging and introspection. However, dpm cannot print protected properties or provide information about methods of an object.
This makes it difficult to debug objects and classes. It’s time to learn a new approach! We will look at alternative methods to solve this problem such as:
Xdebug with PHPStorm configuration - http://xdebug.org
Devel and the WebProfiler (D8+) Drupal module https://www.drupal.org/project/devel
Using the continuous integration tool Probo CI to speed up the testing and approval process - http://probo.ci/
We will create a module, break it and use the above tools to debug, test and fix the code. Whether you are dipping your toes into object-oriented PHP or you're an advanced developer, everyone can benefit from debugging their code more efficiently.
Walks through the top 8 improvements coming to Drupal 8, including videos and code samples to demonstrate "before vs. after."
Given to the @DrupalNS meet up in Bedford, Nova Scotia on July 28, 2014.
Stejně jako dospívání, také uzrávání design systému je dobrodružná, ale i nelehká životní fáze. Zatímco vy byste ještě rádi leccos změnili a vydali se na pár průzkumných výprav, okolí už po vás žádá zralost a stabilitu. Ba co hůř, hlavně nesahat na nic, co je hotové. Nebo aspoň co nejméně. V přednášce si ukážeme, jak se jako design systém tým připravit na zkoušku z dospělosti svého produktu, jak komunikovat s produktovými týmy o breaking changes, i když jste se zavázali, že je nebudete dělat, a jak týmům pomoci je překonávat.
Drupal developers have spent years writing Drupal 7 modules for their clients, and with Drupal 8 looming on the horizon, many of these will need to be upgraded so that clients can be upgraded. We'll go through step-by-step upgrading of a real-life module from Drupal.org from Drupal 7 to 8, and we will also introduce the new things developers will need to know.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
3. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
What about you?
4. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Agenda.Today
01 Upgrade path overview
02 Migrate in Core, what’s there
03 Migrate API
04 Demo
5.
6. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Drupal upgrade.
In 4 easy steps:
1. Get latest version of your current Drupal core.
2. Through next major version on top of your current
3. Run upgrade.php
4. PRAY
7. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Drupal upgrade.
Pros:
- No coding required
- Easy to run
- Basic Drupal core coverage
Cons:
- No support for contrib modules, not even CCK
- Not customizable
- No way to jump versions
- Clutter in database and a pleathora of bugs
8. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Drupal Migrate.
In 4 painful steps:
1. Develop a completely new website with same functionality from scratch
2. Create migration classes for all your entity types and bundles
3. Implement missing migrate support for contrib modules and contribute it
back to the community
4. Run migrations and PRAY
9. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Drupal Migrate.
Pros:
- Flexible and extendable Migrate API
- Available solutions for contrib modules
- No clutter in database, as database is new
- You can jump major versions
- Basic support for simplest mappings from UI
Cons:
- Considerable amount of coding is usually required
- No way to migrate configurations
- No warranties and no core and community support
11. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Migrate in D8.
Migrate was completely rewritten and was merged in Drupal 8 core.
Migrate modules:
>migrate (core)
>migrate_drupal (core)
>migrate_update (contrib)
>migrate_plus (Migrate UI formerly - contrib)
12. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Migrate in D8.
Drupal to Drupal migrations allow:
>Content migration with predefined mappings
>Configurations migration is supported, thanks to CMI (Content Types, User
profile, fields with field settings, widget settings, formatter settings)
>Excellent support for i18n, both nodes and UI translations
>Migration of every variable from D6
>~100 migrations defined
13. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Migrate in D8.
What is in Drupal core now:
>Migrate API and Drupal 8 destination plugins
>Drupal 6 migrate path finalized, couple of bugs left
>Drupal 7 migration path started
>Drupal 8 migration path planned for future releases
>No interface for rollbacks, and idlist yet
Not yet there:
14. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Migration API.
Basically Drupal’s implementation of Extract-Transform-Load (ETL)
Phases:
Extract > source
Transform > process
Load > destination
15. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Plugins everywhere.
Migration API works with plugins. Drupal 8 has a lot of plugins and a common
plugin system. Think of it like Ctools plugins in D7 but sexier.
Source plugins - extract data. From DB, YAML, JSON, whatever you need
Process plugins - pipeline for data massaging. Can have unlimited number of
process plugins chained
Destination plugins - saves data in Drupal. Be it an entity, config or URL
alias
22. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Simple massaging
function hook_migrate_prepare_row(Row $row, MigrateSourceInterface $source, MigrationInterface $migration) {
if ($migration->id() == 'd6_filter_formats') {
$value = $source->getDatabase()->query('SELECT value FROM {variable} WHERE name = :name’,
array(':name' => 'mymodule_filter_foo_' . $row->getSourceProperty('format')))->fetchField();
if ($value) {
$row->setSourceProperty('settings:mymodule:foo', unserialize($value));
}
}
}
24. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Plugin definition
/**
* Drupal 6 menu source from database.
*
* @MigrateSource(
* id = "d6_menu",
* source_provider = "menu"
* )
*/
class Menu extends DrupalSqlBase {
public function query() {
$query = $this->select('menu_custom', 'm')
->fields('m', array('menu_name', 'title', 'description'));
return $query;
}
public function fields() {
return array(
'menu_name' => $this->t('The menu name. Primary key.'),
'title' => $this->t('The human-readable name of the menu.'),
'description' => $this->t('A description of the menu'),
);
}
public function getIds() {
$ids['menu_name']['type'] = 'string';
return $ids;
}
}
26. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Cckfield plugins/**
* @PluginID("openlayers_wkt")
*/
class OpenlayersCckField extends CckFieldPluginBase {
public function processField(MigrationInterface $migration) {
// The field would be geofield rather than link if it existed.
$process[0]['map'][$this->pluginId]['openlayers_wkt_widget'] = 'geofield';
$migration->mergeProcessOfProperty('type', $process);
}
public function processFieldWidget(MigrationInterface $migration) {
// The widget would be geofield rather than link if it existed.
$process['type']['map']['openlayers_wkt_widget'] = 'geofield_default';
$migration->mergeProcessOfProperty('options/type', $process);
}
public function getFieldFormatterMap() {
return [
'default' => 'geofield_default',
'openlayers_wkt' => 'geofield_default',
'openlayers_map_default' => 'geofield_default',
'hidden' => 'hidden',
];
}
public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
$process = [
'plugin' => 'get',
'value' => 'openlayers_wkt',
];
$migration->mergeProcessOfProperty($field_name, $process);
}
}
28. Formerly known as Bysted, Propeople, Blink Reaction, Chainbizz and Geekpolis
Further study
https://www.drupal.org/project/examples
https://www.drupal.org/developing/api/8
https://api.drupal.org/api/drupal/8
https://www.drupal.org/list-changes
https://drupalize.me/blog/201409/unravelling-drupal-8-plugin-system
https://drupalize.me/blog/201408/preparing-drupal-8-psr-4-autoloading
https://www.drupal.org/documentation/administer/config