Hello our valued visitor, We present you the best web solutions and high quality graphic designs with a lot of features. just login to your account and enjoy ...
Hello our valued visitor, We present you the best web solutions and high quality graphic designs with a lot of features. just login to your account and enjoy ...
News ID | Title News | Details |
---|---|---|
14,272 | DrupalEasy Podcast 229 - Yuriy Gerasimov (Diffy), Ryan Price (Drupal news) |
Mike speaks with Yuriy Gerasimov, one of the principles of Diffy, a cloud visual regression testing platform as well as Ryan Price to discuss all sorts of things including #DrupalCares, Drupal 9 launch parties, and an interesting Composer/Git workflow model. In addition, Chris Weber also has some new change records for us. URLs mentioned Yuriy Gerasimov interview #DrupalCares
Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher. If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page. |
17,371 | Congrats to the Drupal Career Online class of Spring, 2020! |
Last week, the 15th semester of Drupal Career Online concluded, and we're proud to announce 10 new graduates of the program! Congrats to Aida, Ashley, Avery, Carla, Jada, Kim, Matt, Micah, Tonderlier, and Tyler! Drupal Career Online is a 12-week, live-instructor, online Drupal training program designed to teach best practices and sound fundamentals for Drupal developers. The course includes not only (virtual) classroom instruction, but also a number of other experiences designed to provide students with various opportunities to learn and practice the material.
While the DCO has been around for over 6 years, that doesn't mean that our curriculum is stale. In fact, just the opposite - every semester, the curriculum is updated with the latest best practices. In the Spring 2020 semester, for example, lessons were updated to include the new drupal/recommended-project Composer template, our module development lesson was updated to avoid Drupal 9 deprecations, our class project was updated, and best practice layout tools were update (with more of an emphasis on Layout Builder). These ongoing curriculum iterations ensure our graduates are learning current best practices! Perhaps the most important aspect of the DCO is the fact that our alumni have access to weekly, office hours - each and every week throughout the year. These office hours provide an opportunity for alumni to re-connect, ask questions when they get stuck, and sometimes just lurk to hear what others are asking about. We feel that it provides a level of comfort to our alumni - that we are as invested in their future as they are. The next semester of Drupal Career Online begins August 31. Interested in learning more about it? Come to one of our free, 1-hour Taste of Drupal webinars where we'll tell you all about the DCO and you can ask any questions you may have. |
17,430 | DrupalEasy Podcast 230 - Ryan Price (feature flags), Andrew Riley (news, module picks, bikes), The Change Notice (Chris Weber) |
We missed a week, but we're back with a super-sized retro episode where we talk with two of the original DrupalEasy podcast hosts! First, Andrew Riley drops by to cover some recent Drupal news and make some module picks-of-the week (including a Drupal logo memory game!) Then, Mike speaks with Ryan Price about feature flags - it's not a module, not a service, but rather a design pattern. Finally, Chris Weber also has some new change records for us. URLs mentioned
Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher. If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page. |
18,973 | DrupalEasy Podcast 231 - Michael Meyers (Yjs and Goose), Dane Powell (Acquia BLT) |
Ryan Price talks with Michael Meyers about Yjs (an open-source project that enables real-time, collaborative editing similar to Google Docs) and Goose (a load testing tool), after that, Mike Anello talks with Dane Powell about Acquia BLT. URLs mentioned
Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher. If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page. |
19,380 | Announcing "Composer Basics for Drupal Developers" - a 7-hour, online workshop |
We recently debuted our brand-new, 7-hour, live-instructor, online Composer Basics for Drupal Developers workshop to alumni of our flagship Drupal Career Online program. We've been gearing up for this launch for well over a year now, teaching select parts of the curriculum as part of Drupal Career Online, at various Drupal events as in-person workshops and presentations, as well as our own experience working with Composer with our clients. We believe that the result is the most complete and best-practice-focused Composer training available for Drupal developers today. (And a super-helpful 50-page reference document that comes with the course.) Not only does the workshop cover the absolute basics of Composer, but it also includes in-class examples of converting an existing site to using the new drupal/recommended-project dependencies, as well as how to handle Git code conflicts in composer.lock files. We are thrilled with the impact the course has had based on our beta-testing of the workshop: I've attended multiple DrupalEasy workshops and the Composer Basics workshop helps demystify the tool that can seem like a blackbox for so many developers. Mike is a great teacher. He makes sure to thoroughly explain and demo confusing topics so everyone understands the problem and the solution. The material in the Composer Basics handout is thorough and a great standalone resource. Understanding Composer is a necessity when working with modern Drupal, Mike makes everything clear and understandable so you can get out there and make something great. This course will actually enable me to utilize composer in my daily workflow. Erased my fears of the unknown. The first public offering of this workshop will be on Monday, June 15 from 1:30-5pm ET (part 1) and Tuesday, June 16 from 1:30-5pm ET (part 2). The cost is $250, but if you signup for our newsletter (via the form in the page footer below), you'll receive a 25% off promo code. The workshop includes the 50+ page PDF of the material. Topics covered in the workshop include:
Interested? Check out all the details and register today! Interested in a private workshop for your development team - contact us to make it happen! |
19,758 | An effective method of using Config Split |
If you use Drupal 8's configuration system, then you know that one of the trickiest parts of using it effectively is managing configuration on a per-environment basis. Luckily, the Config Split module makes it easy to manage different configurations in different environments, but how to set it up properly isn't always readily apparent. In this blog post, I'll provide one method for setting up Config Split in an efficient manner, with splits for local, remote development, and production environments. The goal is to be able to set things up right the first time, without having to worry about manually enabling/disabling different "splits" depending on the environment. The key to it all is leveraging Config Split's ability to enable/disable individual splits with configuration in the settings.php file. The first step is to set up your splits - I normally start by doing this on my local environment. Once Config Split is enabled, via the admin toolbar, head to Configuration | Development | Configuration Split Settings (/admin/config/development/configuration/config-split). Click to add a new split setting - in this example, we'll use the following settings:
Let's also add a second split - this one for remote development environments:
Note that we're not going to split out the Config Split configurations (meta, I know), rather we're going to allow the Local and Dev Config Split settings to be exported to the main /config/sync/ directory. Next, when exporting config, the following directories and files will be created: /config/splits/local/ reroute_email.settings.yml /config/splits/dev/ reroute_email.settings.yml /config/sync/ ... config_split.config_split.local.yml config_split.config_split.dev.yml ...At this point, if we did nothing else, then both the "Local" and "Dev" splits would be automatically active all the time in all the environments and we really wouldn't have accomplished anything yet. The final step to make this all work is to add a couple of lines of code to each environment's settings.php file. For example, in the settings.local.php, add: $config['config_split.config_split.local']['status'] = TRUE; $config['config_split.config_split.dev']['status'] = FALSE;Then, in the settings.php for the remote development environments, add: $config['config_split.config_split.local']['status'] = FALSE; $config['config_split.config_split.dev']['status'] = TRUE;If you use a single settings.php for all environments, then you can use if-statements to determine the current environment and then enable/disable the appropriate splits. For example: if ($env == 'local') { $config['config_split.config_split.local']['status'] = TRUE; $config['config_split.config_split.dev']['status'] = FALSE; if ($env == 'dev') { $config['config_split.config_split.local']['status'] = FALSE; $config['config_split.config_split.dev']['status'] = TRUE; else { $config['config_split.config_split.local']['status'] = FALSE; $config['config_split.config_split.dev']['status'] = FALSE; }With this type of Config Split setup, you'll always be able to immediately run a configuration import after pulling in new commits from the project repository without having to worry about manually enabling or disabling your splits. |
19,998 | Exclude and include pages in Drupal 8 block visibility settings |
The standard Drupal 8 block visibility page settings allow you to either include the listed paths (via "Show for all listed pages" or exclude the listed paths (via "Hide for all listed pages") - but you can never include and exclude at the same time. The Block Exclude Pages module provides a solution to this. Consider the following situation: you have a block that needs to appear at all pages whose URL begins with "/about", with the exception of "/about/me". With just Drupal 8 core visibility rules, it isn't possible to easily make this happen. With the Block Exclude Pages module installed and enabled, the following visibility rules can then be used: /about !/about/me(Show for all listed pages" selected.) The Block Exclude Pages module allows you to use the "!" character as a negation - problem solved! |
20,554 | DrupalEasy Podcast 232 - Ted Bowman (Project Update Bot), Michael Schmid (amazee.io Lagoon) |
Ted Bowman, Drupal core contributor and member of Acquia's Drupal Acceleration Team (DAT) talks about the Drupal.org Project Update Bot. Also, Michael Schmid, the CTO of amazee.io joins us to talk about their Drupal hosting solution, Lagoon, and how it fits in to a best-practice focused Drupal development workflow. URLs mentioned
Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher. If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page. |
20,795 | Automatically remove the Drupal core README (and other) scaffolding files |
When creating a Drupal 8 or 9 project using the drupal/recommended-project Composer template, you may notice during certain Composer commands that the scaffolding files are copied from an "assets" directory inside of Drupal's core directory to their proper place in the codebase. But, did you know that the plugin that manages this process, drupal/core-composer-scaffold, can be easily customized in your project's composer.json file to not copy some of the scaffolding files? For example, if you don't want the core README.txt scaffolding file created, then all you need to do is add the following to the "drupal-scaffold" data of the "extras" section of your project's composer.json: "file-mapping": { "[web-root]/README.txt": false }The syntax of the file-mapping is simply: "to: from". Meaning, copy the [web-root]/README.txt from "false" (nowhere). The power of the scaffolding plugin doesn't stop there - you can also add additional scaffolding files and modify existing ones, all automatically. Want to learn more about Composer? Check out our Composer Basics for Drupal Developers workshop. |
21,320 | Composer Plugins for Drupal Developers |
As always-evolving Drupal developers, we have been in the process of moving towards having a Composer-based workflow for managing our Drupal project codebases. While it is (normally) an easy jump from "drush dl" to "composer require" for Drupal contrib modules and themes, there's another significant opportunity for us to take advantage of during this evolution that should be considered. We are all familiar with the concept that Drupal modules extend the functionality of Drupal site; we should also be embracing the fact that there is a whole class of Composer dependencies that extend Composer's functionality. These are appropriately called "Composer plugins". Composer Plugins 101If your Drupal project is using the drupal/recommended-project or drupal-composer/drupal-project Composer template (or similar), then you're already using Composer plugins. The second part of this article will surface some additional Composer plugins that you may want to consider adding to your Drupal codebase. Adding a new Composer plugin is normally a two-step process. First, use "composer require" to add the plugin to your project. The second step usually (but not always) involves adding some plugin configuration to your project composer.json's "extra" section. For example, one of the dependencies of the drupal/core-recommended Composer template is the composer/installers plugin - this is how Composer knows to put Drupal modules in the modules/contrib/ directory and not in the (Composer default) vendor/ directory. If you were working on a project that didn't already use composer/installers, then you would need to add it to the project using composer require composer/installersThen, after reading a little bit of documentation, you would learn that in order for Composer to place dependencies of type "drupal-module" (as defined in the module's composer.json file) in your project's web/modules/contrib/ directory, you would need to add the following to your project composer.json's "extra" section: "extra": { "installer-paths": { "web/modules/contrib/{$name}": ["type:drupal-module"], } }One other thing to be aware of when it comes to Composer plugins is that many (most?) plugins are able to run directly via a Composer command. For example, the drupal/core-composer-scaffold command (details below) can be run at any time via "composer drupal:scaffold". Side note: if I have one complaint about Composer plugins it is that often the plugin's vendor/name are not consistent with the plugin's defined key in the "extra" section (composer/installers vs. installer-paths). I would much prefer if the key was defined based on the plugin's vendor/name. For example, something like "composer-installers-paths" - this would make it easier for new users to recognize the relationship between plugins and data in the "extra" section, IMHO. Useful Composer Plugins for Drupal projects Must haves
zaporylie/composer-drupal-optimizations
topfloor/composer-cleanup-vcs-dirs
oomphinc/composer-installers-extender
Am I missing any? If so, please let me know in the comments below. Thanks to everyone who responded to my Twitter post on this topic! Want to learn more about Composer? Check out our Composer Basics for Drupal Developers workshop. |