Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Copyright and Credits
Drupal 8 Module Development Second Edition
About Packt
Why subscribe? Packt.com
Foreword Contributors
About the author About the reviewer Packt is searching for authors like you
Preface
Who this book is for What this book covers To get the most out of this book
Download the example code files Download the color images Conventions used
Get in touch
Reviews
Developing for Drupal 8
Introducing Drupal (for developers) Developing for Drupal 8 Technologies that drive Drupal
PHP Databases and MySQL The web server
HTML, CSS, and JavaScript
Drupal architecture
Drupal core, modules, and themes Hooks, plugins, and events Services and the dependency injection container From request to response
Drupal's major subsystems
Routing Entities Fields Menus Views Forms Configuration Plugins The theme system Caching Other subsystems
Tools for developing in Drupal
Version control Composer The API site and coding standards The developer (Devel) module Drush (the Drupal shell) Drupal Console Developer settings
Summary
Creating Your First Module
Creating a module
Your first hook implementation Route and controller
The route
Route variables
Namespaces The Controller
Services
What is a service? The HelloWorldSalutation service Tagged services
Using services in Drupal 8
Injecting the service into our Controller Invoked Controllers
The form
Altering forms Custom submit handlers Rendering forms Service dependencies
Blocks
Our first block plugin Block configuration
Working with links
The URL The link Which way to link?
Event Dispatcher and redirects
Redirecting from a Controller Redirecting from a subscriber Dispatching events
Summary
Logging and Mailing
Logging
The Drupal 8 logging theory Our own logger channel Our own logger Logging for Hello World Logging summary
Mail API
The theory of the Mail API Implementing hook_mail() Sending emails Altering someone else's emails Custom mail plugins
The mail plugin Using mail plugins
Tokens
The Token API Using tokens Defining new tokens Token summary
Summary
Theming
Business logic versus presentation logic Twig Theme hooks Theme hook suggestions Render arrays
The structure of a render array
#type #theme #markup
The render pipeline
Assets and libraries
Libraries
Attaching libraries
Common theme hooks
Lists Links Tables
Attributes Layouts
Defining layouts Rendering a layout
Theming our Hello World module Summary
Menus and Menu Links
The menu system
Menus Menu links
Multiple types of menu links
Local tasks Local actions Contextual links
MenuLink trees
Menu link tree manipulators Menu active trail
Rendering menus Working with menu links
Defining menu links Working with menu links
Defining local tasks Defining local actions Defining contextual links Summary
Data Modeling and Storage
Different types of data storage State API TempStore
Private TempStore Shared TempStore Tempstore conclusion
UserData Configuration
Introduction
What is configuration used for? Managing configuration
Different types of configuration Configuration storage
Schema Overrides
Global overrides Module overrides Language overrides Priority
Interacting with simple configuration
Entities
Content versus configuration entity types Entity type plugins
Identifiers Bundles Database tables Entity keys Links Entity translation Entity revisions Configuration export Handlers
Fields
Configuration entity fields Content entity fields
Base fields Configurable fields Field storage
Entity types summary
TypedData
Why TypedData? What is TypedData? The low-level API
DataType plugins Data definitions
Content entities TypedData summary
Interacting with the Entity API
Querying entities
Building queries
Loading entities Reading entities Manipulating entities Creating entities Rendering content entities Pseudo-fields Entity validation
Content entities Configuration entities Validation summary
Summary
Your Own Custom Entity and Plugin Types
Custom content entity type
Custom plugin type Custom configuration entity type The Importer plugin Content entity bundles
Drush command Summary
The Database API
The Schema API Running queries
Select queries
Handling the result More complex select queries Range queries
Pagers Insert queries Update queries Delete queries Transactions Query alters Update hooks
Summary
Custom Fields
A recap of Field type plugins Field type Field widget Field formatter Field settings Using our custom field type as a base field Summary
Access Control
Introduction to the Drupal access system
Roles and permissions under the hood
Defining permissions Checking the user credentials Route access
Custom route access
Static approach Service approach
Programmatically checking access on routes Bonus—dynamic route options for access control CSRF protection on routes Altering routes
Entity access
Injecting services into Entity handlers Entity access hooks Field access Entity access in routes Node access grants
Block access Summary
Caching
Introduction to Caching Cacheability metadata
Cache tags Cache contexts Max-age Using the cache metadata
Caching in block plugins Caching access results
Placeholders and lazy building
Lazy builders
Using the Cache API
Creating our own cache bin
Summary
JavaScript and the Ajax API
JavaScript in Drupal
Drupal behaviors
Our library The JavaScript
Drupal settings
The Ajax API
Ajax links Ajax in forms States (Form) system
Summary
Internationalization and Languages
Introduction to the multilingual ecosystem
Language Content translation Configuration translation Interface translation
Internationalization Content entities and the Translation API Summary
Batches, Queues, and Cron
Batch-powered update hooks Batch operations
Creating the batch Batch operations
Cron Queues
Introduction to the Queue API Cron-based queues Processing a queue programmatically
The Lock API Summary
Views
Entities in Views Exposing custom data to Views
Views data
Views fields Views relationships Views sorts and filters Views arguments Altering Views data
Custom Views field
Field configuration
Custom Views filter Custom Views argument Views theming Views hooks Summary
Working with Files and Images
The filesystem Stream wrappers Managed versus unmanaged files Using the File and Image fields Working with managed files
Attaching managed files to entities Helpful functions for dealing with managed files Managed file uploads
Managed file form element Entity CRUD hooks Managed file usage service Processing the CSV file
Our own stream wrapper Working with unmanaged files Private filesystem Images
Image toolkits Image styles Rendering images
Summary
Automated Testing
Testing methodologies in Drupal 8 PHPUnit Registering tests Unit tests
Mocked dependencies
Kernel tests
TeamCleaner test CsvImporter test
Functional tests
Configuration for functional tests Hello World page test Hello World form test
Functional JavaScript tests
Time test CsvImporter test
Summary
Drupal 8 Security
Cross-Site Scripting (XSS)
Sanitization methods in Drupal 8 Double escaping
SQL Injection Cross-Site Request Forgery (CSRF) Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion