Jacob Rockowitz: Providing an Ambitious Site Builder Experience using the Schema.org Blueprints Demo profile and module

The Schema.org Blueprints module is a comprehensive solution for leveraging Schema.org's content models to create the ideal content authoring experience to provide an API-first and SEO-friendly website. Besides building a great content model, the Schema.org Blueprints module with additional contributed modules can provide an ambitious site builder experience. To demonstrate an ideal site-building and content-authoring experience, I created a demo installation profile and module.

The Schema.org Blueprints Demo Profile is a simplified version of the Drupal Core's Standard installation profile, with some features disabled and others enabled. For example, the Comment and Contact modules are not automatically enabled. Meanwhile, the Media module is enabled and properly configured. Additionally, Drupal's default 'Article' content type is not created because it does use media, and the Schema.org Blueprints modules can easily recreate it using media. The Schema.org Blueprints Demo Profile sets up the ideal starting point for installing and configuring modules via the Schema.org Demo module.

The Schema.org Demo module consists of four sub-modules that set up different aspects of an ambitious site builder experience. The main module's README.md includes more details and installation instructions. Many contributed modules are installed via the demo, and each module's decisions and use cases are documented in the DECISIONS.md.

Building this demo of the Schema.org Blueprints module can feel overwhelming. Please watch the video below for a step-by-step...Read More

Promet Source: Drupal vs. WordPress: Key Strengths of the Top CMSs

A frequent question in the open source CMS world is a variation of: “Which is better, Drupal or WordPress?”  There’s not a simple answer to the WordPress vs Drupal question. Many have a strong bias towards one content management system or the other, but often, staunch opinions on the subject are based on a few cursory facts or outdated information.

Drupal Association blog: A Farewell From Von

With a heart full of joy, sadness, pride, and premature nostalgia, I will be departing the Drupal Association on 21 September, 2023 and will no longer serve on the leadership team as your Director, Programs. 

Over the last two years at the Drupal Association, I have had the honor to work with so many incredible change-makers in the non-profit and Open Source world. I’ve grown beyond what I ever imagined in my relationship with the free and open web, and I’m so grateful to this community for trusting me with leading many of the Drupal Association’s most critical programs. I’m also deeply grateful for the entire staff at the Drupal Association for trusting me to help build our workplace into one that is rooted in equity, access, and employee agency. Cultivating a healthy culture at a remote global organization is one of things I’m most proud of leaving behind, and I’m confident that the leadership team will continue to nurture our working environment to be one where everyone can thrive. 

Thank you so much to the Drupal community and the DA staff/board for making the last 2 years some of the most fulfilling, empowering, and productive of my career. It's been my pleasure to work hand-in-hand with you all on DrupalCon, Discover Drupal, contribution enablement, and DEI best practices, and I will take all I've learned into the next chapter of my career. It is my hope that I’ve left you all in a good place, and have had a positive impact on your experience in the Drupal ecosystem. I have the utmost faith in my colleagues to continue to deliver high-impact, equitable programs that make Drupal amazing. 

Feel free to find me on the Drupal Community Slack (vonreyes) in my last two weeks, or at vonreyes.carrd.co if you want to stay in touch in the future.

Image removed.
Left to right: Von with Nikki Flores; Von with Iwantha Lekamge; Von with Angie Sabin 
File attachments:  vonheader.png

Specbee: Simplified PHP Debugging with XDebug in Lando & DDev for Drupal

Fun fact: The world's first computer bug was a real moth! But don't worry, we're not here to debug insects. We all know that debugging is vital in website development. It helps developers identify and resolve issues, leading to a smoother and more reliable end product. To achieve that, you need the right tools. One such technique that can help you troubleshoot your PHP is XDebug.In this article, I’d like to share the steps and requirements involved in setting up PHP debugging with XDebug on Lando and DDEV Drupal setups using the VS Code IDE. Let’s dive in! What is XDebug Xdebug is a standard and powerful debugger in PHP and improves your development experience. It provides us developers with key features that help in finding and fixing the errors in code.  Step Debugging - A way to step through your code in your editor while the script is executing. Improvements to PHP's error reporting - This allows you to get better error messages and obtain more information from PHP's built-in functions. An upgraded var_dump() function, stack traces for Notices, Warnings, Errors, and Exceptions to highlight the code path to the error. Tracing - When an error occurs, Xdebug generates detailed stack traces that show the sequence of function calls leading up to the error, helping developers pinpoint the source of the issue. Xdebug helps in tracking the values of variables during script execution, making it easier to understand how values change as the script progresses. Profiling - With the help of visualization tools, it allows you to analyze the performance of your PHP application and identify bottlenecks.  Code Coverage Analysis - This can generate code coverage reports, to show which parts of your code base are executed when running unit tests with PHPUnit. Support for Various IDEs - Xdebug supports integration with multiple IDEs such as PhpStorm, Visual Studio Code, Eclipse, NetBeans, and more. XDebug with VS Code IDE I chose VS Code here as it's one of the most used and my favorite editor. Install Visual Studio Code (VS Code) if you haven't already.To make Xdebug work on this IDE, the first thing you need is the ‘PHP Debug’ Extension. Find and install it. This is needed for projects running on Lando or even with DDEV. PHP Debug Extension XDebug + VS Code + Lando Enabling Xdebug on Lando Lando by default does not provide you with an Xdebug extension. To enable Xdebug on Lando add the xdebug: true line to your .lando.yml file under the config key: name: TechX recipe: drupal10 config: xdebug: trueOr else, override your php service, by adding xdebug: true under appserver: name: TechX services: appserver: webroot: web xdebug: trueFollow it up by rebuilding your environment: lando rebuild -yThis will enable the extension by default whenever you start the Lando environment and Xdebug is now ready to receive the connections. In terms of performance, an even better option is to toggle between Xdebug on and off with some custom tooling commands.  If you're using Apache, tweak your .lando.yml with the following lines and don’t forget to run lando rebuild -y after. config: # Set Xdebug off by default. We use the tooling below to turn it on as needed. xdebug: false services: appserver: overrides: environment: XDEBUG_MODE: 'debug,develop' tooling: xdebug-on: service: appserver description: Enable Xdebug. user: root cmd: - docker-php-ext-enable xdebug && kill -USR2 $(pgrep -o php-fpm) > /dev/null || /etc/init.d/apache2 reload - tput setaf 2 && echo "Xdebug On" && tput sgr 0 && echo xdebug-off: service: appserver description: Disable Xdebug. user: root cmd: - rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && kill -USR2 $(pgrep -o php-fpm) > /dev/null || /etc/init.d/apache2 reload - tput setaf 1 && echo "Xdebug Off" && tput sgr 0 && echoNow you can enable and disable Xdebug with custom commands lando xdebug-on and lando xdebug-off. Browser Requirements For your browser, install the suitable Xdebug helper extension. On Chrome browsers, enable the Xdebug helper extension. Xdebug helper - Chrome Extension If you are using Firefox, try the Xdebug Helper add-on.  Xdebug helper - Firefox Add-On Making Xdebug work on VS Code The next step is to create a custom .vscode/launch.json file within your workspace. This will map paths so that XDebug works correctly.Open your project in the VS Code IDE, go to ‘Run and Debug’ and click on ‘create a launch.json file’  Create launch.json file This will create the launch.json file with relevant configurations. Update the ‘Listen for Xdebug’ section with the below details. Note that the Xdebug 3 listens on port 9003. { "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9003, "pathMappings": { "/app/": "${workspaceFolder}/", } } ] }Start debugging! Add a debug breakpoint to a line in your PHP code wherever you need it by clicking the line number. Set breakpoints Enable Xdebug on Lando using: lando xdebug-onIn the menu, click on Run → Start Debugging. Ensure “Listen for Xdebug” is selected by the green arrowhead at the top left. The bottom pane of VS Code will be changed to orange (live) and should say “Listen for Xdebug”.  Start Debugging Start Debugging In your browser, navigate to your Lando app's URL and find the Xdebug helper extension in the address bar.  It is usually a "beetle" icon. Click on it and choose "Debug" from the menu to tell your browser to send the appropriate parameters to Xdebug so that Xdebug activates when a request is made.  Enable Xdebug helper extension Refresh the page or click on your site link. VS Code should now automatically open the Debug window and produce a debug output if a breakpoint is reached.  Xdebug in action Debugging Process When your code execution reaches a breakpoint, the debugger will stop, and you can inspect variables, step through code, and understand the flow. VS Code will provide a user interface for interacting with the debugging session. XDebug + VS Code + DDEV Unlike Lando, with DDEV, Xdebug already exits out of the box. You don't need any custom service, no rebuild, no browser extensions, no Drama! :)Just update the project’s .vscode/launch.json to add the “Listen for Xdebug” configuration from the below-attached config snippet. { "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "hostname": "0.0.0.0", "port": 9003, "pathMappings": { "/var/www/html": "${workspaceFolder}/", } } ] }Set a breakpoint in your PDP code. Restart it, if the breakpoint you set isn’t solid red. In the menu, choose Run → Start Debugging and ensure “Listen for Xdebug” is selected. Enable Xdebug on DDEV using: ddev xdebug onIn a browser, visit your project, and just like you saw earlier, you will be redirected to your IDE once you hit the breakpoint. Visit the page Will be redirected to the IDE and stop at the first breakpoint Final thoughts XDebug is a powerful tool that significantly simplifies the debugging process for Drupal developers, helping them write more reliable and efficient code. I hope this tutorial has shed light on its benefits and how to set it up in your development environment. If you found this article useful, consider subscribing to our weekly newsletter where we share the latest tips, tricks, and insights in Drupal development.