This document describes the steps to create a configurable temperature display block module for Drupal 8. It involves:
1. Defining the module and block plugin.
2. Making the block configurable by adding a configuration form to set the city, and saving it in the block settings.
3. Providing a default city configuration that can be installed, and loading it on block build if no city is set.
4. Making the default configuration editable by adding a configuration form page under the admin menu.
The document discusses working with forms in Drupal 8. It covers creating a form by extending the FormBase class and implementing required methods. Forms can be rendered standalone or embedded in other pages. Validation checks form values and returns errors. Submitting stores values, outputs messages, and redirects. Existing forms can be reused and modified using form alterations.
Entities in Drupal 8 are classes that can represent content or configuration. The Entity API in Drupal 8 provides standardized methods for core entities and custom entities to perform CRUD operations like create, read, update, and delete. This allows entities to be managed consistently through an entity storage class and removes the need for proprietary entity functions. The Entity API also includes methods for querying entities and accessing entity properties through getters and setters.
This document discusses theming in Drupal 8. It begins by explaining how template engines like Twig have replaced PHPTemplate for separating markup and logic. It then covers creating a Drupal theme with Twig templates and libraries, and registering templates in modules. Finally, it provides an overview of Twig syntax for variables, control structures, filters/functions, inheritance and an example block template.
This talk is an overview of the history of the PHP language and major framework projects that have emerged in the last 5 years. It examines what we've learned in the development of these frameworks, how that education has been brought to bear in Lithium. Most of this talk ended up being me demoing and answering questions, so there's not a lot of content in the slides, sorry.
The document discusses dependency injection in PHP. It begins with a real-world web application example to demonstrate dependency injection, showing how the User class depends on a SessionStorage class. It then explains how using constructor injection for the dependency rather than hardcoding it makes the code more customizable, configurable, and testable. Dependency injection decouples classes and makes them more reusable and replaceable. The document advocates using a dependency injection container to manage object instantiation and dependencies.
This document summarizes jQuery secrets presented by Bastian Feder. It discusses utilities like jQuery.data() and jQuery.removeData() for saving and removing state on DOM elements. It also covers AJAX settings, events, extending jQuery, and jQuery plugins. The presentation provides code examples for working with data, events, namespaces, AJAX, and extending jQuery functionality.
The document discusses dependency injection and describes how to build a simple dependency injection container in PHP. It explains how to use anonymous functions to describe how to create objects without instantiating them. The container stores these functions and uses them to instantiate objects on demand, injecting their dependencies. This allows decoupling objects and making configuration and customization natural. The container manages both parameters and object instantiation, handles scopes like shared instances, and can be configured flexibly.
This document describes the steps to create a configurable temperature display block module for Drupal 8. It involves:
1. Defining the module and block plugin.
2. Making the block configurable by adding a configuration form to set the city, and saving it in the block settings.
3. Providing a default city configuration that can be installed, and loading it on block build if no city is set.
4. Making the default configuration editable by adding a configuration form page under the admin menu.
The document discusses working with forms in Drupal 8. It covers creating a form by extending the FormBase class and implementing required methods. Forms can be rendered standalone or embedded in other pages. Validation checks form values and returns errors. Submitting stores values, outputs messages, and redirects. Existing forms can be reused and modified using form alterations.
Entities in Drupal 8 are classes that can represent content or configuration. The Entity API in Drupal 8 provides standardized methods for core entities and custom entities to perform CRUD operations like create, read, update, and delete. This allows entities to be managed consistently through an entity storage class and removes the need for proprietary entity functions. The Entity API also includes methods for querying entities and accessing entity properties through getters and setters.
This document discusses theming in Drupal 8. It begins by explaining how template engines like Twig have replaced PHPTemplate for separating markup and logic. It then covers creating a Drupal theme with Twig templates and libraries, and registering templates in modules. Finally, it provides an overview of Twig syntax for variables, control structures, filters/functions, inheritance and an example block template.
This talk is an overview of the history of the PHP language and major framework projects that have emerged in the last 5 years. It examines what we've learned in the development of these frameworks, how that education has been brought to bear in Lithium. Most of this talk ended up being me demoing and answering questions, so there's not a lot of content in the slides, sorry.
The document discusses dependency injection in PHP. It begins with a real-world web application example to demonstrate dependency injection, showing how the User class depends on a SessionStorage class. It then explains how using constructor injection for the dependency rather than hardcoding it makes the code more customizable, configurable, and testable. Dependency injection decouples classes and makes them more reusable and replaceable. The document advocates using a dependency injection container to manage object instantiation and dependencies.
This document summarizes jQuery secrets presented by Bastian Feder. It discusses utilities like jQuery.data() and jQuery.removeData() for saving and removing state on DOM elements. It also covers AJAX settings, events, extending jQuery, and jQuery plugins. The presentation provides code examples for working with data, events, namespaces, AJAX, and extending jQuery functionality.
The document discusses dependency injection and describes how to build a simple dependency injection container in PHP. It explains how to use anonymous functions to describe how to create objects without instantiating them. The container stores these functions and uses them to instantiate objects on demand, injecting their dependencies. This allows decoupling objects and making configuration and customization natural. The container manages both parameters and object instantiation, handles scopes like shared instances, and can be configured flexibly.
The document discusses best practices for unit and functional testing PHP applications using PHPUnit. It covers setting up test directories and configuration files, creating test cases, making requests with the test client, and using assertions to validate responses. Functional tests are recommended over unit tests for application controllers. Techniques like request insulation and profiling responses are also described.
Building Lithium Apps (Like a Boss) was a workshop presented on the structure and philosophy of the Lithium framework and its applications, and how best to take advantage of them.
The document summarizes the state of the Lithium framework. It discusses project and community stats including contributors and issues closed. It outlines progress on the roadmap including new features like encrypting and signing cookies, nesting routes, and error handling. Upcoming features mentioned are HTTP service classes, filtering and sorting collections, and schema and multibyte classes. Community plugins are highlighted and tips and tricks are provided before opening for Q&A.
Lithium: The Framework for People Who Hate FrameworksNate Abele
This is the presentation was given at ConFoo on March 11th by Nate Abele and Joël Perras, and is an introduction to the architectural problems with other frameworks that Lithium was designed to address, and how it addresses them. It also introduces programming paradigms like functional and aspect-oriented programming which address issues that OOP doesn't account for.
Finally, the talk provides a quick overview of the innovative and unparalleled features that Lithium provides, including the data layer, which supports both relational and non-relational databases.
This document summarizes a presentation about writing secure Drupal code. It discusses common vulnerabilities like cross-site scripting, access bypass, and SQL injection. It provides examples of secure and vulnerable code and recommends best practices to prevent vulnerabilities, including input filtering, access control, and automated testing. It also discusses security improvements in Drupal 8 and learning from security advisories.
What's New in Drupal 8: Entity Field APIDrupalize.Me
In this presentation we take a high-level look at the new Drupal 8 Entity Field API. To view this presentation as a video, go to https://drupalize.me/videos/whats-new-drupal-8-entity-field-api?p=2075. This video is part of a series examining What's New in Drupal 8 and is produced by Drupalize.Me.
The document discusses using the Lithium PHP framework to build a photo blog application. It provides examples of defining a Photos model to interact with photo data, building views to display and edit photos, implementing a PhotosController to handle requests and define actions, and setting routes. The model saves photo data and tags to the database. Views are used to display photo details, edit forms, and render tags as links. The controller handles index, view, add, edit and nearby location based actions. Routes are also defined, including one to directly serve photo image files.
Decouple Your Code For Reusability (International PHP Conference / IPC 2008)Fabien Potencier
This document discusses decoupling PHP code for reusability. It introduces dependency injection as a way to decouple code modules by injecting dependencies through constructors rather than hardcoding them. This improves testability, maintainability and extensibility of the code. It provides a web application example where classes like User and Routing are decoupled from concrete classes like SessionStorage and Cache by defining them through a service container. The container handles instantiating the classes and passing dependencies to constructors.
The document discusses various features and capabilities of PHPUnit for testing PHP code. It covers command line options for PHPUnit like filters and coverage reports. It also covers different types of assertions for validating test expectations, using annotations to organize tests, and special tests for things like exceptions. The document aims to explain some of the more advanced but lesser known aspects of using PHPUnit for testing.
This document discusses dependency injection with PHP and PHP 5.3. It provides an example of managing user preferences with a User object that depends on a SessionStorage object for persistence between requests. The document argues that directly instantiating dependencies within classes leads to rigid code that is hard to customize or test. Instead, it advocates injecting dependencies through a class's constructor to make the code more flexible and decoupled. It then introduces a simple dependency injection container for PHP 5.3 that can manage object instantiation and dependencies.
The most hated thing a developer can imagine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
The document discusses dependency injection containers and configuration in frameworks. It provides examples of configuring services like mail transport and mailers using different approaches like procedural code, object-oriented code, and XML configuration. It also discusses managing configuration for different environments and making components more flexible through inheritance and customization.
This document provides an introduction to object oriented PHP by explaining key concepts like encapsulation, inheritance, polymorphism, and abstraction. It defines classes, objects, properties, methods, and constructs. Examples are provided to demonstrate how to define classes, instantiate objects, set properties, create and extend classes, implement interfaces and abstract classes, and override methods.
Valeriy Rabievskiy leads a web studio called stfalcon.com and is an active open source developer. Doctrine 2 is separated into common, DBAL, ORM, and migrations libraries. Entities are lightweight PHP classes that store data in object properties without needing to extend a base class. The EntityManager acts as the central access point for ORM functions like updating entities and accessing repositories. ZF2 integrates with Doctrine 2 through autoloading. The console provides commands for tasks like validating the schema, generating proxies, and running migrations to update the database schema.
The document provides an overview of Symfony2, an open-source PHP web application framework. It describes Symfony2 as a set of decoupled and cohesive components including routing, templating, form handling, and more. It also outlines Symfony2's support for modern best practices like dependency injection and an object-oriented approach to web application development using the Model-View-Controller pattern.
This document provides an overview and examples of several design patterns in object-oriented programming with PHP, including Strategy, Factory, Abstract Factory, Adapter, Singleton, Iterator, and Observer patterns. The Strategy pattern allows making decisions on different cases more easily by encapsulating varying implementations of an algorithm. The Factory pattern hides object creation logic and allows for polymorphic object instantiation. The Abstract Factory pattern ensures all created objects conform to a common interface. The Adapter pattern allows incompatible interfaces to work together by wrapping an object to fit expected interfaces. The Singleton pattern ensures only one instance of a class is created. The Iterator pattern provides a way to access elements of an object sequentially without exposing its underlying representation. The Observer pattern allows objects to publish
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
The document discusses various concepts related to entities in Drupal 7 including:
1) Declaring an entity using hook_entity_info() and specifying the controller class.
2) Implementing hook_schema() to define the entity's database table.
3) Additional functionality provided by the Entity API module including entity properties and wrappers.
4) Using the entity class and controller for common operations like loading and saving entities.
5) Performing queries on entity fields using the EntityFieldQuery class.
This document summarizes changes to the Drupal 7 API, including improvements to the database, translation, rendering, queue, and file APIs. Key changes include an object-oriented database API, support for localization servers, storing page content as render arrays, adding producer/worker queues to offload long tasks from cron, and a stream-based file API. Modules can now more easily alter queries and page output, and additional queue and file stream types can be defined.
The document discusses debugging techniques in Drupal 8. It begins by outlining some basic configuration options like PHP error reporting and the Devel module. It then covers specific debugging tools like Xdebug, Drupal Console, and the Web Profiler module. Various code examples demonstrate debugging problems like class not found errors and accessing protected properties. Continuous integration with Probo CI and pull requests are presented as solutions for testing and client approval workflows. The key steps for debugging are identified as thinking through code logically, identifying goals, finding the right tool to solve problems, and testing fixes.
The document discusses best practices for unit and functional testing PHP applications using PHPUnit. It covers setting up test directories and configuration files, creating test cases, making requests with the test client, and using assertions to validate responses. Functional tests are recommended over unit tests for application controllers. Techniques like request insulation and profiling responses are also described.
Building Lithium Apps (Like a Boss) was a workshop presented on the structure and philosophy of the Lithium framework and its applications, and how best to take advantage of them.
The document summarizes the state of the Lithium framework. It discusses project and community stats including contributors and issues closed. It outlines progress on the roadmap including new features like encrypting and signing cookies, nesting routes, and error handling. Upcoming features mentioned are HTTP service classes, filtering and sorting collections, and schema and multibyte classes. Community plugins are highlighted and tips and tricks are provided before opening for Q&A.
Lithium: The Framework for People Who Hate FrameworksNate Abele
This is the presentation was given at ConFoo on March 11th by Nate Abele and Joël Perras, and is an introduction to the architectural problems with other frameworks that Lithium was designed to address, and how it addresses them. It also introduces programming paradigms like functional and aspect-oriented programming which address issues that OOP doesn't account for.
Finally, the talk provides a quick overview of the innovative and unparalleled features that Lithium provides, including the data layer, which supports both relational and non-relational databases.
This document summarizes a presentation about writing secure Drupal code. It discusses common vulnerabilities like cross-site scripting, access bypass, and SQL injection. It provides examples of secure and vulnerable code and recommends best practices to prevent vulnerabilities, including input filtering, access control, and automated testing. It also discusses security improvements in Drupal 8 and learning from security advisories.
What's New in Drupal 8: Entity Field APIDrupalize.Me
In this presentation we take a high-level look at the new Drupal 8 Entity Field API. To view this presentation as a video, go to https://drupalize.me/videos/whats-new-drupal-8-entity-field-api?p=2075. This video is part of a series examining What's New in Drupal 8 and is produced by Drupalize.Me.
The document discusses using the Lithium PHP framework to build a photo blog application. It provides examples of defining a Photos model to interact with photo data, building views to display and edit photos, implementing a PhotosController to handle requests and define actions, and setting routes. The model saves photo data and tags to the database. Views are used to display photo details, edit forms, and render tags as links. The controller handles index, view, add, edit and nearby location based actions. Routes are also defined, including one to directly serve photo image files.
Decouple Your Code For Reusability (International PHP Conference / IPC 2008)Fabien Potencier
This document discusses decoupling PHP code for reusability. It introduces dependency injection as a way to decouple code modules by injecting dependencies through constructors rather than hardcoding them. This improves testability, maintainability and extensibility of the code. It provides a web application example where classes like User and Routing are decoupled from concrete classes like SessionStorage and Cache by defining them through a service container. The container handles instantiating the classes and passing dependencies to constructors.
The document discusses various features and capabilities of PHPUnit for testing PHP code. It covers command line options for PHPUnit like filters and coverage reports. It also covers different types of assertions for validating test expectations, using annotations to organize tests, and special tests for things like exceptions. The document aims to explain some of the more advanced but lesser known aspects of using PHPUnit for testing.
This document discusses dependency injection with PHP and PHP 5.3. It provides an example of managing user preferences with a User object that depends on a SessionStorage object for persistence between requests. The document argues that directly instantiating dependencies within classes leads to rigid code that is hard to customize or test. Instead, it advocates injecting dependencies through a class's constructor to make the code more flexible and decoupled. It then introduces a simple dependency injection container for PHP 5.3 that can manage object instantiation and dependencies.
The most hated thing a developer can imagine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
The document discusses dependency injection containers and configuration in frameworks. It provides examples of configuring services like mail transport and mailers using different approaches like procedural code, object-oriented code, and XML configuration. It also discusses managing configuration for different environments and making components more flexible through inheritance and customization.
This document provides an introduction to object oriented PHP by explaining key concepts like encapsulation, inheritance, polymorphism, and abstraction. It defines classes, objects, properties, methods, and constructs. Examples are provided to demonstrate how to define classes, instantiate objects, set properties, create and extend classes, implement interfaces and abstract classes, and override methods.
Valeriy Rabievskiy leads a web studio called stfalcon.com and is an active open source developer. Doctrine 2 is separated into common, DBAL, ORM, and migrations libraries. Entities are lightweight PHP classes that store data in object properties without needing to extend a base class. The EntityManager acts as the central access point for ORM functions like updating entities and accessing repositories. ZF2 integrates with Doctrine 2 through autoloading. The console provides commands for tasks like validating the schema, generating proxies, and running migrations to update the database schema.
The document provides an overview of Symfony2, an open-source PHP web application framework. It describes Symfony2 as a set of decoupled and cohesive components including routing, templating, form handling, and more. It also outlines Symfony2's support for modern best practices like dependency injection and an object-oriented approach to web application development using the Model-View-Controller pattern.
This document provides an overview and examples of several design patterns in object-oriented programming with PHP, including Strategy, Factory, Abstract Factory, Adapter, Singleton, Iterator, and Observer patterns. The Strategy pattern allows making decisions on different cases more easily by encapsulating varying implementations of an algorithm. The Factory pattern hides object creation logic and allows for polymorphic object instantiation. The Abstract Factory pattern ensures all created objects conform to a common interface. The Adapter pattern allows incompatible interfaces to work together by wrapping an object to fit expected interfaces. The Singleton pattern ensures only one instance of a class is created. The Iterator pattern provides a way to access elements of an object sequentially without exposing its underlying representation. The Observer pattern allows objects to publish
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
The document discusses various concepts related to entities in Drupal 7 including:
1) Declaring an entity using hook_entity_info() and specifying the controller class.
2) Implementing hook_schema() to define the entity's database table.
3) Additional functionality provided by the Entity API module including entity properties and wrappers.
4) Using the entity class and controller for common operations like loading and saving entities.
5) Performing queries on entity fields using the EntityFieldQuery class.
This document summarizes changes to the Drupal 7 API, including improvements to the database, translation, rendering, queue, and file APIs. Key changes include an object-oriented database API, support for localization servers, storing page content as render arrays, adding producer/worker queues to offload long tasks from cron, and a stream-based file API. Modules can now more easily alter queries and page output, and additional queue and file stream types can be defined.
The document discusses debugging techniques in Drupal 8. It begins by outlining some basic configuration options like PHP error reporting and the Devel module. It then covers specific debugging tools like Xdebug, Drupal Console, and the Web Profiler module. Various code examples demonstrate debugging problems like class not found errors and accessing protected properties. Continuous integration with Probo CI and pull requests are presented as solutions for testing and client approval workflows. The key steps for debugging are identified as thinking through code logically, identifying goals, finding the right tool to solve problems, and testing fixes.
Refactoring, Agile Entwicklung, Continuous Integration – all diese für nachhaltigen Erfolg wichtigen Vorgehensweisen setzen Erfahrung mit Unit Testing voraus. Abseits von den üblichen "Bowling"-Beispielen möchten wir gerne einen Crashkurs inkl. Best Practices für das erfolgreiche Unit Testing durchführen. Anhand eines Beispielprojekts auf Basis des Zend Frameworks werden wir nach der Installation von PHPUnit auf allen Notebooks gemeinsam eine kleine Applikation aufbauen, die durchgehend Test-driven entwickelt wird.
Drupal 7 Theming - Behind the Scenes: PHP control flow starting from entering URL to browser displaying webpage. Covers Theme info file, regions, an Rendear Arrays (Phoenix User Group 1/25/2012)
Drupal 8 Services And Dependency InjectionPhilip Norton
Using the service manager is an essential part of a Drupal 8 developers toolkit and understanding it not only helps development, but can also allow you to create modules that can be easily used by other developers. There are numerous code examples out there that talk about using this or that service, so I'll look at how to go from "\Drupal::service('thing');" to finding and using services within Drupal 8. I will look at creating custom services to use within your own modules and provide injectable dependencies for other modules. I will also show how to override services to provide your own functionality to existing services. All code shown will be real examples that you can take away and use in your own projects.
Given at DrupalCamp London 2018
Nickolay Shmalenuk.Render api eng.DrupalCamp Kyiv 2011camp_drupal_ua
The document introduces the Render API in Drupal 7. It discusses how the Render API works similarly to the Form API by collecting necessary data into an array that is then converted to HTML and displayed. It describes main hooks like hook_page_build() and hook_page_alter() that can be used to add or override page elements. It also provides examples of using #theme and #arguments to theme render arrays and attach CSS/JS files.
The document discusses Drupal Feeds and its key components. It describes FeedsSource which extends FeedsConfigurable and how it imports data. It outlines the Feeds plugins system including Fetcher, Parser and Processor plugins. It details how Feeds imports data using a background job or batch process and calls the import method on FeedsSource. Finally it discusses Feeds hooks and creating custom Fetcher plugins.
This document provides an overview of routing in Drupal 8. It explains that routing replaces hook_menu() from Drupal 7 and uses route files to define paths and callbacks. Paths can map to multiple routes and dynamic placeholders are supported. Forms are classes that implement interfaces rather than functions. Access, local tasks, actions and contextual links are also defined through route files rather than hook_menu.
Drupal 8 Theme System: The Backend of FrontendAcquia
If you develop with Drupal, chances are you've worked with Drupal's theme system, whether you knew it or not. With Drupal 8 out, what better time to learn more about the Drupal 8 theme system?
The theme system in Drupal spans both module development and theme development. The main responsibilities of the theme system are to prepare and output markup and other data, and to allow for overrides. The Drupal 8 theme system brings many changes including the Twig templating engine, automatically escaped markup for increased security, changes to theme suggestions, new base themes in core, and more.
Scott Reeves, Team Lead at Digital Echidna, and Drupal 8 theme system co-maintainer and provisional core committer will guide you through Drupal 8’s theme system. The webinar will cover important differences from Drupal 7 and also walk through the internals of different aspects of the theme system and how they might affect your day-to-day work with Drupal.
Topics will include:
-An overview of the important changes to the theme system from Drupal 7 to Drupal 8
-How to use theme hook suggestions to cut down on custom code and create more flexible and reusable components
-Phases of the theme and render systems and where you can step in to alter things
-Debugging tips and Twig magic
JavaScript in Drupal 7: What developers need to knowWork at Play
This document discusses JavaScript improvements and changes in Drupal 7. It outlines problems with JavaScript usage in Drupal 6 and provides solutions implemented in Drupal 7, such as a standardized way to add JavaScript through libraries and behaviors, improved AJAX functionality, and core inclusion of jQuery UI. Key changes include separating jQuery from the $ alias, adding weight to script files, supporting external JavaScript, and attaching behaviors to dynamically-loaded content.
JavaScript in Drupal 7: What developers need to knowkatbailey
This document discusses JavaScript improvements and changes in Drupal 7. It outlines problems with JavaScript in Drupal 6 and provides solutions implemented in Drupal 7, such as a standardized way to add JavaScript through libraries and behaviors, improved AJAX support through a new framework, and core inclusion of jQuery UI. Behaviors can now be attached and detached, and there are standardized methods for JSON encoding, adding settings to AJAX responses, and ensuring behaviors are only attached once.
This document provides an overview of the basic structure and functions needed to create a Drupal 5 module, including defining a custom content type, handling user access permissions, performing database operations, adding menu items and callbacks, and other optional functions. The key components covered are the module .info file, installation functions, node type definition, form generation, access control, database queries, hook implementations, and menu integration.
Digital Mayflower - Data Pilgrimage with the Drupal Migrate ModuleErich Beyrent
In the year 1620, a collection of data left their proprietary database in search of a new, open ecosystem. Okay, so maybe that's not quite how the story goes, but it works for a modern reboot of the classic saga.
That moment of panic when someone assigns you the task of migrating a legacy site into Drupal. It's a daunting project, fraught with undocumented data, mixed character sets, bizarre content modules, and impossible deadlines. Fortunately, it's now easier than ever to migrate data from an existing source into Drupal, thanks to the Migrate module.
In this session, we'll cover:
An overview of the Migrate module
Common hooks for iterating and transforming your data
Migration from databases, CSV files, and static HTML
How to use Drush to control your migrations
Overview of the main ways to store data in Drupal 8 depending on data and needs. A detailed description of each way and examples of how to work with storages.
https://drupalcampkyiv.org/node/44
This document discusses the principle of separation of concerns in software engineering. It provides an overview of separation of concerns and how it relates to breaking programs into distinct and separate areas of responsibility. The document then provides several examples of how to apply separation of concerns through different techniques like horizontal separation by layer (presentation, business, data), vertical separation by module, aspect-oriented programming for cross-cutting concerns, and dependency inversion. The benefits highlighted include increased reusability, maintainability, code quality, and understandability of the application.
This document discusses Drupal's database abstraction layer (DBAL) and API. It provides an overview of the DBAL classes and interfaces like DatabaseConnection, QueryInterface, and DatabaseStatementInterface. It also covers how to perform common database operations in Drupal like queries, transactions, and logging queries for debugging. Useful resources for working with Drupal's database API are also listed.
Con la versione 7 di Drupal è stato introdotto il concetto di Entity.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Relatore: Marco Vito Moscaritolo
This document discusses migrating from Symfony 1 to Symfony 2. It covers key differences like Symfony 2's use of the Dependency Injection Container and lack of sfContext. It provides examples of implementing models, controllers and views in Symfony 2. Recommended bundles for common Symfony 1 features are also mentioned, along with caching and the HTTP layer.
jQuery UI Widgets, Drag and Drop, Drupal 7 JavascriptDarren Mothersele
These are the slides from my presentation at the London Drupal Drop In December 2011. I have posted more information to go along with these slides on my <a>Drupal blog</a>.
Drupal 8 Every Day: An Intro to Developing With Drupal 8Acquia
Drupal 8 is coming, everyone is excited, and your developers can’t wait to use all the shiny new features. There’s just one problem: you still need to get your daily work done. Every day Drupal development requires the execution of many common patterns and scenarios.
How well do these common scenarios translate to Drupal 8? We polled Drupal developers to find what tasks we do the most and built a practical guide to using Drupal 8 in every day development.
In this presentation we’ll cover the following real world scenarios, while sprinkling in Drupal 8 best practices along the way:
- Configuration Management
- Creating and altering pages and forms
- Menu callback patterns
- Managing dependencies
Composer is a dependency manager and package manager for PHP that allows projects to declare their dependencies in a composer.json file. It installs dependencies and manages autoloading so that dependencies are available to a project. The presentation discusses why Composer is useful for avoiding dependency issues, how to initialize a project with Composer, add and update dependencies, and how Composer can be used to manage modules and themes in Drupal projects. It also covers using Composer scripts and plugins as well as integrating Composer and Drush.
Headless Drupal involves decoupling the Drupal backend from the frontend presentation layer. This allows for flexible frontend development while retaining Drupal's content management capabilities through a REST API. Key benefits include separation of concerns between content and presentation, using the best technologies for each, and improved performance through caching and scalability. Some topics to consider include available Drupal services, security, accessibility and SEO when implementing a headless architecture.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
HijackLoader Evolution: Interactive Process HollowingDonato Onofri
CrowdStrike researchers have identified a HijackLoader (aka IDAT Loader) sample that employs sophisticated evasion techniques to enhance the complexity of the threat. HijackLoader, an increasingly popular tool among adversaries for deploying additional payloads and tooling, continues to evolve as its developers experiment and enhance its capabilities.
In their analysis of a recent HijackLoader sample, CrowdStrike researchers discovered new techniques designed to increase the defense evasion capabilities of the loader. The malware developer used a standard process hollowing technique coupled with an additional trigger that was activated by the parent process writing to a pipe. This new approach, called "Interactive Process Hollowing", has the potential to make defense evasion stealthier.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
Ready to Unlock the Power of Blockchain!Toptal Tech
Imagine a world where data flows freely, yet remains secure. A world where trust is built into the fabric of every transaction. This is the promise of blockchain, a revolutionary technology poised to reshape our digital landscape.
Toptal Tech is at the forefront of this innovation, connecting you with the brightest minds in blockchain development. Together, we can unlock the potential of this transformative technology, building a future of transparency, security, and endless possibilities.