{"componentChunkName":"component---src-templates-post-jsx","path":"/en/drupal/backend-cheat-sheet","result":{"data":{"markdownRemark":{"html":"<h2>Table of Contents</h2>\n<ul>\n<li><a href=\"#installation\">Installation and Configuration</a></li>\n<li><a href=\"#drush\">Drush Commands</a></li>\n<li><a href=\"#modules\">Modules and Themes</a></li>\n<li><a href=\"#configuration\">Configuration Management</a></li>\n<li><a href=\"#entities\">Entities and Database Operations</a></li>\n<li><a href=\"#hooks\">Hooks and Services</a></li>\n<li><a href=\"#routes\">Routes and Controllers</a></li>\n<li><a href=\"#users\">Users and Access Control</a></li>\n<li><a href=\"#bonus\">Bonus: Tips and Best Practices</a></li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"installation\">Installation and Configuration of a Drupal Instance</h3>\n<ul>\n<li>\n<p><strong>Install Drupal</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">composer create-project drupal/recommended-project drupal-website\n<span class=\"token builtin class-name\">cd</span> drupal-website```</code></pre></div>\n</li>\n<li>\n<p><strong>Install Drupal in a Subdirectory</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">composer create-project drupal/recommended-project drupal-website\n<span class=\"token function\">mv</span> drupal-website public_html``` </code></pre></div>\n</li>\n<li>\n<p><strong>Initialize the Site</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"> drush site:install standard --db-url<span class=\"token operator\">=</span>mysql://user:password@localhost/databasename --site-name<span class=\"token operator\">=</span><span class=\"token string\">\"Drupal Website\"</span></code></pre></div>\n</li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"drush\">Drush Commands</h3>\n<ul>\n<li>\n<p><strong>Common Drush Commands</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">drush cr          <span class=\"token comment\"># Clear cache</span>\ndrush uli         <span class=\"token comment\"># Get login URL</span>\ndrush status      <span class=\"token comment\"># Drupal site status</span>\ndrush pm:enable   <span class=\"token comment\"># Enable a module</span>\ndrush pm:uninstall <span class=\"token comment\"># Uninstall a module</span>\ndrush config:export -y <span class=\"token comment\"># Export configuration</span>\ndrush config:import -y <span class=\"token comment\"># Import configuration</span></code></pre></div>\n<hr>\n<h2></br></h2>\n<h3 id=\"modules\">Modules and Themes</h3>\n</li>\n<li>\n<p><strong>Install a Module via Composer</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">composer require drupal/devel\ndrush pm:enable devel</code></pre></div>\n</li>\n<li>\n<p><strong>Install a Custom Module</strong>:</p>\n<ul>\n<li>Place the module in <code class=\"language-text\">modules/custom/module_name</code>.</li>\n<li>Define the <code class=\"language-text\">.info.yml</code> file, hook implementations, and other components.</li>\n</ul>\n</li>\n<li>\n<p><strong>Install a Custom Theme</strong>:</p>\n<ul>\n<li>Place the theme in <code class=\"language-text\">themes/custom/theme_name</code>.</li>\n<li>Define the <code class=\"language-text\">.info.yml</code> file, templates, and assets.</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"configuration\">Configuration Management</h3>\n<ul>\n<li>\n<p><strong>Export Configuration</strong>:</p>\n<p><code class=\"language-text\">drush config:export</code> </p>\n</li>\n<li>\n<p><strong>Import Configuration</strong>:</p>\n<p><code class=\"language-text\">drush config:import</code> </p>\n</li>\n<li>\n<p><strong>Reset to Default Configuration</strong>:</p>\n<p><code class=\"language-text\">drush config:delete mymodule.settings</code> </p>\n</li>\n<li>\n<p><strong>Run PHP code via Drush</strong>:</p>\n<p><code class=\"language-text\">drush php-eval &quot;dump(\\Drupal::Config(&#39;system.site&#39;)-&gt;get(&#39;name&#39;));&quot;</code></p>\n</li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"entities\">Entities and Database Operations</h3>\n<ul>\n<li>\n<p><strong>Query with EntityQuery</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$query</span> <span class=\"token operator\">=</span> \\<span class=\"token package\">Drupal</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">entityQuery</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'node'</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">condition</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'type'</span><span class=\"token punctuation\">,</span> <span class=\"token single-quoted-string string\">'article'</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">accessCheck</span><span class=\"token punctuation\">(</span><span class=\"token boolean constant\">TRUE</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">condition</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'status'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token variable\">$nids</span> <span class=\"token operator\">=</span> <span class=\"token variable\">$query</span><span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">execute</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</li>\n<li>\n<p><strong>Load an Entity</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$node</span> <span class=\"token operator\">=</span> \\<span class=\"token package\">Drupal</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">entityTypeManager</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">getStorage</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'node'</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">load</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$node_id</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</li>\n<li>\n<p><strong>Load Multiple Entities</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$entity_manager</span> <span class=\"token operator\">=</span> \\<span class=\"token package\">Drupal</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">entityTypeManager</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">getStorage</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'node'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    \n<span class=\"token variable\">$nids</span> <span class=\"token operator\">=</span> <span class=\"token variable\">$entity_manager</span><span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">getQuery</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">condition</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'type'</span><span class=\"token punctuation\">,</span> <span class=\"token single-quoted-string string\">'article'</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">condition</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'status'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">accessCheck</span><span class=\"token punctuation\">(</span><span class=\"token boolean constant\">TRUE</span><span class=\"token punctuation\">)</span>\n    <span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">execute</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token variable\">$nodes</span> <span class=\"token operator\">=</span> <span class=\"token variable\">$entity_manager</span><span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">loadMultiple</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$nids</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</li>\n<li>\n<p><strong>Create an Entity</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$node</span> <span class=\"token operator\">=</span> \\<span class=\"token package\">Drupal<span class=\"token punctuation\">\\</span>node<span class=\"token punctuation\">\\</span>Entity<span class=\"token punctuation\">\\</span>Node</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">create</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>\n  <span class=\"token single-quoted-string string\">'type'</span> <span class=\"token operator\">=</span><span class=\"token operator\">></span> <span class=\"token single-quoted-string string\">'article'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token single-quoted-string string\">'title'</span> <span class=\"token operator\">=</span><span class=\"token operator\">></span> <span class=\"token single-quoted-string string\">'My New Article'</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token variable\">$node</span><span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">save</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"hooks\">Hooks and Services</h3>\n<ul>\n<li>\n<p><strong>Implement a Hook</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">function</span> <span class=\"token function\">mymodule_node_view</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">array</span> <span class=\"token operator\">&amp;</span><span class=\"token variable\">$build</span><span class=\"token punctuation\">,</span> \\<span class=\"token package\">Drupal<span class=\"token punctuation\">\\</span>node<span class=\"token punctuation\">\\</span>NodeInterface</span> <span class=\"token variable\">$node</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// Modify the node display here.</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n</li>\n<li>\n<p><strong>Define a Service</strong>:</p>\n<ul>\n<li>\n<p>Add to <code class=\"language-text\">mymodule.services.yml</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">services</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">mymodule.my_service</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">class</span><span class=\"token punctuation\">:</span> Drupal\\mymodule\\MyService\n    <span class=\"token key atrule\">arguments</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span></code></pre></div>\n</li>\n<li>Create <code class=\"language-text\">src/MyService.php</code> with the defined class.</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"routes\">Routes and Controllers</h3>\n<ul>\n<li>\n<p><strong>Define a Route</strong>:</p>\n<ul>\n<li>\n<p>In <code class=\"language-text\">mymodule.routing.yml</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">mymodule.custom_route</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">path</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'/custom-route'</span>\n  <span class=\"token key atrule\">defaults</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">_controller</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'\\Drupal\\mymodule\\Controller\\CustomController::content'</span>\n  <span class=\"token key atrule\">requirements</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">_permission</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'access content'</span></code></pre></div>\n</li>\n</ul>\n</li>\n<li>\n<p><strong>Create a Controller</strong>:</p>\n<ul>\n<li>\n<p>In <code class=\"language-text\">src/Controller/CustomController.php</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">namespace</span> <span class=\"token package\">Drupal<span class=\"token punctuation\">\\</span>mymodule<span class=\"token punctuation\">\\</span>Controller</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">use</span> <span class=\"token package\">Drupal<span class=\"token punctuation\">\\</span>Core<span class=\"token punctuation\">\\</span>Controller<span class=\"token punctuation\">\\</span>ControllerBase</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">CustomController</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">ControllerBase</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">public</span> <span class=\"token keyword\">function</span> <span class=\"token function\">content</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">[</span>\n      <span class=\"token single-quoted-string string\">'#markup'</span> <span class=\"token operator\">=</span><span class=\"token operator\">></span> <span class=\"token single-quoted-string string\">'Hello, Drupal!'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"users\">Users and Access Control</h3>\n<ul>\n<li>\n<p><strong>Check User Permissions</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$current_user</span> <span class=\"token operator\">=</span> \\<span class=\"token package\">Drupal</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">currentUser</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$current_user</span><span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">hasPermission</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'administer site configuration'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// The user has permission to administer the site.</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n</li>\n<li>\n<p><strong>Create a User</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"php\"><pre class=\"language-php\"><code class=\"language-php\"><span class=\"token comment\">// Create a new user</span>\n<span class=\"token variable\">$user</span> <span class=\"token operator\">=</span> \\<span class=\"token package\">Drupal<span class=\"token punctuation\">\\</span>user<span class=\"token punctuation\">\\</span>Entity<span class=\"token punctuation\">\\</span>User</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">create</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>\n  <span class=\"token single-quoted-string string\">'name'</span> <span class=\"token operator\">=</span><span class=\"token operator\">></span> <span class=\"token single-quoted-string string\">'username'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token single-quoted-string string\">'mail'</span> <span class=\"token operator\">=</span><span class=\"token operator\">></span> <span class=\"token single-quoted-string string\">'user@example.com'</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token variable\">$user</span><span class=\"token operator\">-</span><span class=\"token operator\">></span><span class=\"token function\">save</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</li>\n</ul>\n<hr>\n<h2></br></h2>\n<h3 id=\"bonus\">Bonus: Tips and Best Practices</h3>\n</br>    \n<ul>\n<li>\n<p><strong>Debugging Tools</strong>:</p>\n<ul>\n<li>Use the Devel module for quick debugging.</li>\n<li>Use the <code class=\"language-text\">dump($foo)</code> function to debug code and remember to add <code class=\"language-text\">die()</code> after the dump to stop PHP execution.</li>\n<li>Use <code class=\"language-text\">drush ws</code> to monitor logs and errors.</li>\n</ul>\n</li>\n<li>\n<p><strong>For Better Performance</strong>:</p>\n<ul>\n<li>Enable caching wherever possible.</li>\n<li>Use Varnish or Redis for additional cache layers.</li>\n<li>Optimize database queries and use the <code class=\"language-text\">Drupal\\Core\\Database\\Connection</code> service instead of writing raw SQL.</li>\n</ul>\n</li>\n<li>\n<p><strong>Security Best Practices</strong>:</p>\n<ul>\n<li>Keep Drupal and all modules/themes up to date.</li>\n<li>Use strong passwords and limit permissions.</li>\n<li>Enable two-factor authentication (2FA) where possible.</li>\n</ul>\n</li>\n</ul>","excerpt":"Table of Contents Installation and Configuration Drush Commands Modules and Themes Configuration Management Entities and Database Operations Hooks and Services…","frontmatter":{"date":"2024-04-30","metaDate":"2024-04-30","title":"Drupal Development Toolbox","tags":["Drupal 10","Backend","Toolbox","Module development"],"path":"/drupal/backend-cheat-sheet","cover":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAACBP/aAAwDAQACEAMQAAABySdNUVJh/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAECETEh/9oACAEBAAEFApa1RF8eiP/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABoQAAIDAQEAAAAAAAAAAAAAAAABITFhEUH/2gAIAQEAAT8haWosJwepkX0dcKH/2gAMAwEAAgADAAAAEAsv/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFhEBAQEAAAAAAAAAAAAAAAAAABEB/9oACAECAQE/EMiP/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARIUExYXH/2gAIAQEAAT8Qxi8NOEsKq9v1GKmo9dlkWwKQ8dhr6n//2Q==","aspectRatio":1.5,"src":"/static/4dfdaf9519ca4aae022f9c1e81e75e4a/88110/tools.jpg","srcSet":"/static/4dfdaf9519ca4aae022f9c1e81e75e4a/0b320/tools.jpg 480w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/60b32/tools.jpg 960w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/88110/tools.jpg 1920w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/40175/tools.jpg 2880w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/e58c2/tools.jpg 3840w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/724ab/tools.jpg 5394w","srcWebp":"/static/4dfdaf9519ca4aae022f9c1e81e75e4a/d1a9d/tools.webp","srcSetWebp":"/static/4dfdaf9519ca4aae022f9c1e81e75e4a/bc3bf/tools.webp 480w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/39337/tools.webp 960w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/d1a9d/tools.webp 1920w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/fcbe1/tools.webp 2880w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/c136d/tools.webp 3840w,\n/static/4dfdaf9519ca4aae022f9c1e81e75e4a/b502f/tools.webp 5394w","sizes":"(max-width: 1920px) 100vw, 1920px"},"resize":{"src":"/static/4dfdaf9519ca4aae022f9c1e81e75e4a/c4f3a/tools.jpg"}}}}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"pathSlug":"/drupal/backend-cheat-sheet","locale":"en","prev":{"fields":{"locale":"en"},"frontmatter":{"path":"/custom-entity","title":"When Should You Create a Custom Entity in Drupal?","tags":["Drupal 10","Drupal 11","Module development"]}},"next":{"fields":{"locale":"en"},"frontmatter":{"path":"/paragraphs-vs-ief","title":"Paragraphs vs Inline Entity Form","tags":["Drupal 10","Drupal 9","Performance","Site building"]}}}}}