Native PHPStorm Drupal Test Runner
PHPStorm has a lot of built in test runners, but it doesn't support Drupal's Simpletest test runner. In this blog post we'll see how we can execute Drupal tests inside PHPStorm using Drupal test runner.
PHPStorm has a lot of built in test runners, but it doesn't support Drupal's Simpletest test runner. In this blog post we'll see how we can execute Drupal tests inside PHPStorm using Drupal test runner.
Whilst working on a Drupal 8 project, we found that cache tags for a Block Content entity embedded in the footer weren't bubbling up to the page cache.
Read on to find out how we debugged this and how you can ensure this doesn't happen to you too.
Recently, I have been working on a site with a big multi-step form that is using a lot of custom form elements, custom auto-completes, custom form api states and ajax based sub-forms. It is all built using Drupal form api. The best thing about this form is that all the fields and sub-forms map to a data model.
A requirement that comes up from time to time is being able to use content stored in Drupal and produce rich HTML emails. In a lot of cases the design of these emails matches the design of the existing, already implemented front-end website.
In a recent project, we explored ways of creating HTML email’s which wouldn’t require us to start from scratch and would also evolve as the website’s look and feel did. Our design goals were thus:
One of the aspects of the new object oriented architecture in Drupal 8 is the introduction of services. Services can be provided by any module and provide a mechanism for exposing reusable functionality by way of interfaces and classes. All services are instantiated via the container which is responsible for injecting a service’s dependencies.
Since services implement interfaces and are always instantiated via the container, we have the opportunity to alter what the container returns, ultimately allowing us to swap any existing service with a new one.
As part of our sponsorship of the GovInnovate conference, CeBIT conducted an interview with Owen Lansbury about Drupal's role on the Service NSW platform, including how the use of Agile development enabled it to go live in record time and be iteratively improved since launch.
Since 2012, PreviousNext has been developing and maintaining the aGov distribution for Drupal 7. aGov provides a means for Australian Government organisations to meet their accessibility and security obligations with free and open-source software hosted on the platform of their choice.
In the last few weeks we have been working on the Drupal 8 version, and are happy to announce today the first Alpha release!
In this post we share some of our experiences developing a Drupal 8 distribution.
PreviousNext was recently invited to present on the Australian government’s adoption of Drupal at Drupal GovCon in Washington DC. The conference was a great success, with over 1,200 attendees discovering how Drupal is providing solutions to complex business challenges for a broad and diverse range of government related organisations.
I recently attained the Certified Scrum Professional (CSP) certification and found the process a good opportunity to reflect on what led me to Scrum. It was also a chance to take pause and consider our industry approach to project management.
Drupal 8 comes with a services based architecture allowing clean dependency injection, separation of concerns and another way to modify how Drupal works without hacking core
You've probably heard that Drupal 8 lets you swap out a core service for your own implementation, hey, I even said it myself here and here, but how do you achieve that?
Read on to find out how to manipulate Drupal 8 services at run-time and how this compares to other popular PHP Frameworks like Laravel, Silex and Symfony
Apache Solr Search is a great module for integrating your Drupal site with the powerful Apache Solr search tool. Out of the box it can index nodes and their fields, but Panelizer pages won't be indexed. In this post I show how you can get around this by indexing the rendered HTML of a panelizer node page.