All entries filed under “Development Tools”
Vector Media Group recently open sourced their nginx configuration for ExpressionEngine.
At Vector Media Group we’re big fans of nginx. It’s often a much faster and more stable alternative to Apache – especially on projects getting heavy concurrent traffic. We use it on as many ExpressionEngine (and other CMS) sites as possible, so have created a template to use as a starting point on our projects.
The Github repository README has full instructions for installing and using nginx, including support for SSL, CE Cache, and more.
If anyone would take a stab at a CLI for ExpressionEngine, it would be Rob Sanchez.
And he did.
The CLI right now is limited in functionality (empty cache, install add-ons) but Rob is asking for pull requests with additional commands.
Have something you want to see added? Code it and then submit a pull request to the Github project.
Thank you, Rob. This is a great addition.
John D. Wells posted the slides from his GeeUp talk called “Partials: A DRY template pattern. Now part of EE core.”
That about says it all. John gives an informative walk-thru of how partials will help you. Even without seeing John give the talk, the slides are very helpful.
The addition of real layout support in EE is a huge step forward. No more hack arounds needed. And, layouts even support dynamic variables that you can set similar to embed variables. But better because it’s not embeds.
The update to my ExpressionEngine training course (coming out tomorrow) covers layouts and it was a joy to be able to teach that instead of the old embed way, which was easily abused at the expense of the performance of your website.
Page through John’s slides to learn more about layouts
This is only useful to the subset of ya’ll who use Alfred 2, a nice quick launcher utility for OS X.
It’s an Alfred workflow that makes it easy to search EE StackExchange and find what you need (hopefully a solution to a problem!).
The workflow was created by EllisLab and shared on their blog.
While we’re talking about EE StackExchange. If you have a moment, hop over to the site and answer any questions you can!
Has anyone used this?
The general concept is to trace your local db changes and store them into a release file. Release files can be deployed through FTP/GIT/SVN/Etc, after deploy you can do an install of the release, pushing all your db changes.
A new addition to the EE documentation is this full list of System Configuration Overrides. The overrides–in the past documented in the wiki and other places–allow you to override default values or values set through the control panel and saved in the database right in your config file. This is handy if you need those values to differ between environments (local, dev, production).
From former EllisLab employee Kevin Smith:
Yeoman is a web app development workflow that makes it easy to generate scaffolds for dozens of web development technologies.
Rob Sanchez made a Yeoman generator for ExpressionEngine add-ons (a fork of one created for modules) that makes it easy to spin up a new add-on package by just answering some questions.
All it takes is running:
to generate a new add-on shell.
As any EE pro will know, setting up an ExpressionEngine site can involve going back and forth to the same old settings several times. All this takes time and money, but you can speed up the initial process by following a few simple steps which could save you an hour or two’s worth of faffing about!
Just like it says on the tin.
Today Wildbit, the company behind Beanstalk, launched Dploy.io, which handles continous deployment for Github, Bitbucket, and private repositories.
Beanstalk is my favorite repository hosting tools because of its excellent deployment tools. But sometimes I want to host my code elsewhere but still take advantage of those tools.Dploy.io makes that much easier now.
It $29/mo (free for open source) and can deploy to one more servers at a time.
In an upcoming release ExpressionEngine will support New Relic, an application monitoring service.
New Relic gives you all sorts of juicy data about your website and web application (in this case it would be ExpressionEngine). It can also do PHP application monitoring and measure response time, throughput and other server information.
From the EllisLab blog post announcing the upcoming support:
ExpressionEngine will soon be bringing out-of-the-box compatibility with the popular application performance monitoring service New Relic. We’ve been using the service ourselves and find it incredibly useful and oftentimes enlightening. With no need to install a module or add any tags, ExpressionEngine will automatically detect if New Relic is enabled in your PHP environment and provide you with a wealth of useful information.
If you’re unfamiliar, New Relic gives you a look into all aspects of the full stack of your site’s performance, particularly at the transaction level.
Do you already use New Relic and want to give input into the features of the New Relic API that ExpressionEngine will support? EllisLab wants your input and feedback. See the blog post for more details.
An interesting approach to EE site deployment by Krasimir Tsonev where he logs out all queries required to make changes to an EE site (add channels, fields, etc) and the re-runs those queries in another environment.
It’s a somewhat manual, requires changing core files but also possibly a workable database migration for ExpressionEngine.
I have several servers and every one of them has its own database. There are changes in my local database which I have to transfer to the others. I don’t need to export/import the whole database. I need only the latest changes which I’ve just made. Ok so … if I inject some code just before to send something to the mysql I’ll be able to log all the queries. Doing this I’ll have the exact requests to the database and will be able to execute them on the other machines.
Has anyone else tried something like this?
Deploying ExpressionEngine based site
Earlier this year Jason Siffring posted a great article on how to use a transactional email service for ExpressionEngine emails. I was working on improving mail over Mijingo and needed to refer to the article.
Jason even gives you a great comparison of third-party email services. Also, note the Escort add-on that will make it easier to interface with the service APIs.
Has a client ever said to you, “Why didn’t I get that reset password email?” Have you ever had to wait patiently for like ten minutes to get a new member activation email? Ever lose sleep wondering if your contact form is really working? If so, let me introduce you to the wonderful world of transactional email delivery services.
Learn about transactional email services.
No matter which solution you choose, beware of the technical debt you incur along the way. Sam Hernandez says it well:
Luke Wilkins (he’s a developer at Vector Media Group, one of our amazing site advertisers) built a Sublime Text plugin that makes it easy to build ExpressionEngine add-on starter files.
The Sublime Text package walks you through inputting the information needed for creating the add-on type you choose and when you’re done you have the base add-on package built for you. Pretty cool stuff.
After choosing your Add-On type, you will be asked for the relevant pieces of data to get things set up. From there it’s just a matter of adding your logic to the generated Add-On! You can refer to the Expression Engine Docs for more details on Add-On development.
In the event that you wish to add a new Add-On type to an existing Add-On you’ve created (for example, you’ve created a module and now want to add an extension), simply go through the process again with the same Package Name and path and the plugin will allow you to automatically merge that in.
It’s available on Github or you can install it right in Sublime Text.
EE 2.6 has some improvements with how it handles dates and time.
First, there’s no more messing with choosing whether or not you’re observing Daylight Savings Time. EllisLab says:
With the new PHP version requirements for ExpressionEngine, we were able to take advantage of more modern date handling techniques to eliminate the DST setting all together. All you will have to do is choose your timezone and we’ll take care of the rest.
Because of the new PHP version requirement we also get an enhancements in the Date field that allows relative dates to be used. Things like: “noon tomorrow” or “last day of january.”
Read all about it in the EllisLab blog post.