Developer for Laravel, Craft and Go.

Google Spreadsheets and PHP

Recently I had a need to use PHP to interact with the Google Spreadsheets API. With all things Google, it can be a little overwhelming to research. Luckily the folks at Twilio published an article on their blog (by Matt Stauffer) on interacting with Google Spreadsheets, well worth the read.

Google Spreadsheets and PHP – Twilio Cloud Communications Blog


Using macros in Laravel Blade

I stumbled across this by chance, this approach was one I often sought in Twig templates and wanted to try my hand at advanced Blade templates.

Lets say for a second that you have a complex form input, maybe one that contains a lot of divs and conditionals on what to display. Attached is the example I was working with:

This could create the "copy-and-paste" condition that we, as good developers, should avoid.

So whats the best approach to solve this? My first idea was Form Macros. I won't cover this as Jeffery Way provides an excellent tutorial on Laracasts, you can watch here - https://laracasts.com/lessons/form-macros-for-the-win.

The second approach, which was one I felt more comfortable with, was to use Blade itself. Before I started, I looked at the common elements of the form and came up with:

label labelFor name id *class

So I created a new directory named "resources/views/_macros". Within the directory I created a new file named "file.blade.php" and pasted the following code:

Right off the bat I had few concerns, first I was running a conditional against a Blade variable… I did not bother to dig into the parsing order of Blade because well, if it broke it broke… That would be my indicator. So I proceeded to remove a working field from the site and using @include, I passed the required variables, like so:

So I reloaded the page with my fingers crossed and to my surprise… IT WORKED! So I uploaded a file, added a little extra to fluff it up and was genuinely amazed.

I was always a little skeptical of using Blade but the more I dive into it, the more impressed I am.