Release Day: Working with PHP Objects
Blog postThis week, we continue our Introduction to Object-oriented PHP series, in partnership with KnpUniversity (now SymfonyCasts), with tutorials that mostly focus on working with objects in PHP. You'll also learn how to add a specially formatted comment to your code that will enable code autocomplete functionality in your IDE.
While a lot of our days are focused on Drupal, as web developers there are other pieces of tech that we need to understand and use on a regular basis. One example is Apache web server. This is the most popular web server on the web and likely the one your site uses. While you don't need to be a system administrator to use Drupal, you do need to understand some basics of Apache when working with domain names, especially if you're managing multiple domain names on one web server.
Self-Serve Group Memberships
Blog postAt the beginning of this month, we introduced a new feature on the site: self-serve group memberships! In the olden days, when a group wanted to purchase a membership, we asked that they email us. We then generated an invoice and emailed it back. No longer! Now, groups can purchase 5-seat memberships directly from our site—no emailing or invoicing required. Not only is the signup process now very straightforward, but you can purchase a group membership on a monthly basis in addition to the annual option.
This week's podcast, Episode 61: Mental Health and Open Source, dives into the private topic of our mental health. A few Lullabots are joined by Mike Bell, who recently gave a presentation on this topic, sharing his own personal journey. We discuss the pressures and effects we've all experienced in different ways, as well as the ways we've worked to manage our own mental health, and ways the Drupal and open source communities can help.
In anticipation of the release of Drupal 8, one of the things we think is important is to provide foundational training material in areas related to the changes in Drupal 8. One major change is the shift to an object-oriented PHP (OO PHP) architecture, which you can learn more about here, in my presentation, What's New in Drupal 8: Object-oriented PHP. To provide a hands-on coding introduction to OO PHP, we worked with our partners at KnpUniversity to create a new series. Today we are delighted to release the first four video tutorials in the new KnpUniversity series, Introduction to Object-Oriented PHP.
The Drupal 8 development cycle has definitely been a long one. There are several exciting features on the way, but the improvements to the authoring experience in Drupal 8 have definitely drawn a lot of attention. (I know Amber is clamoring for in-place editing for this blog.) The Spark project is the home to much of this work. Several new core modules that contribute to these improvements (Contextual, Quickedit, Toolbar, CKEditor and to a lesser extent, Tour) leverage a pair of popular javascript libraries Backbone.js and Underscore.js.
Both Backbone.js, and its dependency Underscore.js were committed to Drupal 8 two years ago! Let's take a quick look at both Backbone.js and Underscore.js, how they're used in core, and how you might be able to use them to simplify some javascript for your site.
The Drupalize.Me podcast (formerly the Lullabot podcast) has been running for many years now. During this time, not much has changed as far as what makes the podcast itself. There is theme music, a host, guests, event updates, and now even sound effects. Even when it comes to how we record a podcast, not much is different in either the method or the technology. What can make or break a podcast, though, is the quality of the sound. I'm not talking about if the podcast is HD or anything, but what the overall quality of a person's voice is, the ability to reduce or eliminate background distractions, or even just being able to create a good mix of volumes. All these things are great to be able to have some control over and edit before putting the podcast out to the masses.
Drupalize.Me Update: March 2015
Blog postAs Drupal 8 approaches, our team has been growing and really pushing ourselves. Over the past few weeks, we released some impressive tutorials and site updates. Here's an overview.
This week we continue to explore what's new in Drupal 8. We began this series with the Theming, CMI, and OO-PHP editions of our What's New in Drupal 8 series. Last week, we covered what's new in the Entity API, Blocks, Content Authoring Experience, and Mobile and Responsive Features. This week, we have videos outlining what's new in extending Drupal 8 (where did all the hooks go?), new site building features and workflows, and multilingual features. Finally, as a bonus, we have a free video tour of localize.drupal.org, where you can see how Drupal gets translated into languages from all over the world.
Do you want to know how to contribute translations to Drupal core or other contributed modules and themes? Have you ever wondered how translations are managed in Drupal? It all happens in the community at localize.drupal.org. This tutorial gives a tour of localize.drupal.org and then teaches you how to join translation groups and contribute translated strings back to the Drupal community.
Additional resources
Drupalize.Me and Lullabot together have made a donation of $5,000 to the Drupal 8 Accelerate Fund, becoming an anchor donor of this critical funding initiative. We heartily believe in funding core development and are so excited to be a part of providing a much needed final push to a Drupal 8 stable release. Learn more about how you can be a part of accelerating the release of Drupal 8.
Drupalize.Me Podcast No. 60
Blog postA new podcast, Drupalize.Me 2015 Spring Update, is ready for a listen. The Drupalize.Me team typically gets together each quarter to go over the past goals and create new ones.
This week we continue our series of presentations on What's New in Drupal 8. We'll explore blocks, the entity API, the all new content authoring experience, and mobile and responsive features in Drupal core.
Tutorial: Vagrant Drupal 8 Development
Blog postVagrant Drupal Development (VDD) is a ready-to-use development environment using a virtual machine. Why use it? It provides a standard hosting setup, contained in a virtual machine, for developing with Drupal. This allows you to get up and running really, really quickly, without knowing anything about server administration.
A Peek at Traits in Drupal 8
Blog postPart of learning Drupal’s API is learning about “what’s in the pantry.” In Drupal 8, that pantry is configured quite a bit differently than before. Instead of getting the whole warehouse of Drupal functions on every page load, functions—well, now methods—are contained in objects which are defined by classes. Most, if not all, of these classes, which exist in their own PHP files, can be extended and many of them are specifically designed to be extended. These extensible classes are the pantries. They contain properties and methods that we can just use in the classes that extend them. When we extend these classes, we need to make sure we peek inside to see what’s available before we go elsewhere for something that might already be in the cupboard.
Podcast 59: DrupalCon Bogotá Recap
Blog postIn this week's episode, DrupalCon Bogotá Recap, Addi is joined by Lullabots Joe Shindelar, Chris Albrecht, Mike Herchel and Daniel Dalgo to talk about their awesome trip to Bogotá, Colombia for the first DrupalCon Latin America. We talk Drupal, highlights from the 'con, and some of the great things about Bogotá.
This week we're going to dive into the hands-on configuration for the Working with Drupal Multisite series.
In this lesson we'll be building a simple university site, udrupal.com, with different areas, each with their own website: the main site, a news site, and an alumni site. The news site is simply a subdomain of the main domain name, news.udrupal.com, and the alumni site actually has its own separate domain name, udrupalalumni.com. To get this done, you're going to learn how to confirm the DNS is working for the domain names. That is, that they are currently pointing to the right server. Then we're going to configure an Apache vhost on our server so that Apache knows where to find our Drupal code base. We'll finish things up by installing our main Drupal site, udrupal.com.
Additional resources
If we want to do development work on the university multisite, we need to do a few things to have this run smoothly in a local development environment with all of those URLs. The sites.php file is going to let us define aliases for the site configuration folders in /sites
. In this tutorial we'll explain why local development with multisite is tricky, and how to get it set up properly.
Additional resources
example.sites.php (api.drupal.org)
With our domains and Apache configuration in place, we need to make sure all three sites can be installed at the different domains by creating our multisite directories in the sites folder. In this tutorial, we'll create the necessary Drupal site directories and settings files for the three sites so they are all running smoothly, check the domains and install the other two sites, and wrap up by changing the theme on the alumni site.
Before we get started, you should make sure you have two empty databases created for the two new sites we'll be installing.
In this tutorial we're going to be working directly on a server using the command line. You can feel free to use a GUI interface for your site, like an SFTP app or just your local machine file browser and editor apps. If you want to brush up on using the command line, you can check out our free Command Line Basics series.