Home Page Icon
Home Page
Table of Contents for
Drupal 10 Module Development - Fourth Edition
Close
Drupal 10 Module Development - Fourth Edition
by Daniel Sipos
Drupal 10 Module Development - Fourth Edition
Drupal 10 Module Development
Contributors
Preface
Chapter 1: Developing for Drupal
Chapter 2: Creating Your First Module
Chapter 3: Logging and Mailing
Chapter 4: Theming
Chapter 5: Menus and Menu Links
Chapter 6: Data Modeling and Storage
Chapter 7: Your Own Custom Entity and Plugin Types
Chapter 8: The Database API
Chapter 9: Custom Fields
Chapter 10: Access Control
Chapter 11: Caching
Chapter 12: JavaScript and the Ajax API
Chapter 13: Internationalization and Languages
Chapter 14: Batches, Queues, and Cron
Chapter 15: Views
Chapter 16: Working with Files and Images
Chapter 17: Automated Testing
Chapter 18: Drupal Security
Index
Other Books You May Enjoy
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
Drupal 10 Module Development
Next
Next Chapter
Preface
Table of Contents
Preface
1
Developing for Drupal
Introducing Drupal (for developers)
How did we get to Drupal 10?
Developing for Drupal
Technologies that drive Drupal
PHP
Databases and MySQL
The web server
Drupal architecture
Drupal’s major subsystems
Tools for developing in Drupal
Summary
2
Creating Your First Module
Creating a module
Your first hook implementation
Route and controller
Services
Using services in Drupal
Injecting the service into our Controller
Invoked Controllers
The Form API
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
3
Logging and Mailing
Logging
The Drupal logging theory
Our own logger channel
Our own logger
Logging for Hello World
Logging recap
Mail API
The theory behind the Mail API
Implementing hook_mail()
Sending emails
Altering someone else’s emails
Custom mail plugins
Mail API recap
Tokens
The Token API
Using tokens
Defining new tokens
Tokens recap
Summary
4
Theming
Business logic versus presentation logic
Twig
Theme hooks
Theme hook suggestions
Render arrays
The structure of a render array
The render pipeline
Assets and libraries
Libraries
Common theme hooks
Lists
Links
Tables
Attributes
Layouts
Defining layouts
Rendering a layout
Theming our Hello World module
Summary
5
Menus and Menu Links
The menu system
Menus
Menu links
MenuLink trees
Rendering menus
Working with menu links
Defining menu links
Manipulating menu links
Defining local tasks
Defining local actions
Defining contextual links
Summary
6
Data Modeling and Storage
Different types of data storage
The State API
TempStore
Private TempStore
Shared TempStore
Tempstore recap
The UserData API
Configuration API
Introduction
Configuration storage
Configuration recap
Entities
Content versus configuration entity types
Entity type plugins
Fields
Entity types recap
TypedData
Why TypedData?
What is TypedData?
The low-level API
Content entities
TypedData recap
Interacting with the Entity API
Querying entities
Loading entities
Reading entities
Manipulating entities
Creating entities
Rendering content entities
Pseudo-fields
Entity validation
Summary
7
Your Own Custom Entity and Plugin Types
Our custom content entity type
Entity updates
Our custom plugin type
Our custom configuration entity type
The Importer plugin
Content entity bundles
Our own Drush command
Summary
8
The Database API
The Schema API
Running queries
Select queries
Pagers
Insert queries
Update queries
Delete queries
Transactions
Query alters
Update hooks
Post update hooks
Summary
9
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
10
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
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
11
Caching
Introduction to caching
Cacheability metadata
Cache tags
Cache contexts
max-age
Using the cache metadata
Placeholders and lazy building
Lazy builders
Using the Cache API
Creating our own cache bin
Summary
12
JavaScript and the Ajax API
JavaScript in Drupal
Drupal behaviors
Drupal settings
The Ajax API
Ajax links
Ajax in forms
The States (Form) system
Summary
13
Internationalization and Languages
Introduction to the multilingual ecosystem
Language
Content translation
Configuration translation
Interface translation
Internationalization
Content entities and the translation API
Summary
14
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
15
Views
Entities in Views
Exposing custom data to Views
Views data
Custom Views field
Field configuration
Custom Views filter
Custom Views argument
Views theming
Views hooks
Summary
16
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
Our own stream wrapper
Working with unmanaged files
Private filesystem
Images
Image toolkits
Image styles
Rendering images
Summary
17
Automated Testing
Testing methodologies in Drupal
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
18
Drupal Security
Cross-Site Scripting (XSS)
Sanitization methods in Drupal
Double escaping
SQL Injection
Cross-Site Request Forgery (CSRF)
Summary
Index
Other Books You May Enjoy
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset