Modern PHP hosting

Over at the Fortrabbit-blog grown up graffiti kid Frank Lämmer provides an excellent overview of what your options are when looking for PHP-Hosting.

Let’s face it: web hosting is a market for lemons. There are so many providers. New categories are emerging. Borders blur. Microservices everywhere. It’s complex. It’s noisy. It’s hard.
http://blog.fortrabbit.com/php-hosting-possibilities

I used to work with providers that offered sharing hosting that could be administered with tools like Plesk and cPanel. The biggest drawbacks of shared hosting are that these environments don't get updated regularly and you can't really install all the tools you need. We've also had serious troubles with performance in some cases (presumably caused by other users on the same machine).

Thanks to all the excellent resources on server management (like serversforhackers.com and sysadmincasts.com) and tools to provision them (like Forge) I feel confident enough to administer my own boxes. A little over a year ago all new projects at Spatie are hosted on DigitalOcean. We have multiple droplets running and haven't run into any of the problems we faced with the old school hosting providers.

Read more

Sharing controller logic with traits

We've moved our logic into a trait, a trait can be shared between many controllers without inheritance and it's more reasonable to do things with views and redirects here (though still not ideal). This in my eyes is the best solution to the problem, it's what traits are good for and it's quite convenient.
http://tech.graze.com/2015/04/14/sharing-controller-logic-with-traits-in-php/

The article provides a good overview of how the people at Graze came to this solution.

Read more

Join 9,500+ smart developers

Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.

No spam. Unsubscribe anytime. You can also follow me on X.

Comparing the PHP 7 and Hack Type Systems

After writing a couple small programs in Hack I've realized that it's not types themselves that make writing Hack enjoyable: it's the tight feedback loop Hack creates between the machine and myself. Integrating the Hack type checker into my editor means that my entire codebase is analyzed in a split second as soon as I save a file. This immediately surfaces any dumb, or subtle mistakes I made. I find myself writing code fearlessly: when I forget what a function returns, I just write code that calls it with what I think it returns. If I'm wrong, the type checker will tell me immediately. I can fix it quickly, and move on.

PHP has always facilitated a tight feedback loop between the machine and the developer. Save the file, reload the browser, repeat. Hack's type checker makes this even faster. I look forward to being able to build similar tooling on top of PHP 7's strict mode.

http://www.dmiller.io/blog/2015/4/26/comparing-the-php7-and-hack-type-systems

Read more

Forty computer science concepts explained in layman’s terms

http://carlcheo.com/compsci

A handy list for when talking with your project manager. An example:

Asymmetric cryptography

Sharing identical keys works fine among 2 people. What if Alice want to exchange stuff with another guy named Carl, and Alice doesn’t want anybody to see their stuff too? Alice can’t use the same lock and key that she shared with Bob, else Bob can unlock the box easily!

Of course Alice can share a completely new and different lock and key with Carl, but what if Alice wants to exchange stuff with 10 different people? She will need to keep and manage 10 different keys!

So Alice come out with a brilliant solution. Now, she only maintains one key (private key). She distribute the same padlocks (public key) to her friends. Anyone can close the padlocks (encrypt), but only she has the key to open (decrypt) them. Now, anyone can send stuff to Alice using the padlock she distributed, and Alice no longer have to manage different keys for different people.

Read more

A medialibrary package for Laravel 5 original

by Freek Van der Herten – 3 minute read

At Spatie all our greenfield projects are powered by custom built CMS based on Laravel 5. An important part of the CMS is the medialibrary-component. It handles how uploaded files are associated with models. My intern and I recently took the time to release our medialibrary as a package on GitHub.…

Read more

Comparing the PHP 7 and Hack Type Systems

After writing a couple small programs in Hack I've realized that it's not types themselves that make writing Hack enjoyable: it's the tight feedback loop Hack creates between the machine and myself. Integrating the Hack type checker into my editor means that my entire codebase is analyzed in a split second as soon as I save a file. This immediately surfaces any dumb, or subtle mistakes I made. I find myself writing code fearlessly: when I forget what a function returns, I just write code that calls it with what I think it returns. If I'm wrong, the type checker will tell me immediately. I can fix it quickly, and move on.
http://www.dmiller.io/blog/2015/4/26/comparing-the-php7-and-hack-type-systems

Read more

Private npm modules

When you pay for private modules, you can:
  • Host as many private packages as you want
  • Give read access or read-write access for those packages to any other paid user
  • Install and use any packages that other paid users have given you read access to
  • Collaborate on any packages that other paid users have given you write access to
Publish unlimited private modules for just $7/month.
https://www.npmjs.com/private-modules

Read more

PHPeople

Over at the Fortrabbit blog you'll find a great list containing various influencers of the PHP ecosystem.

... we have to have an eye on future trends. So we are monitoring what’s going on in the open source PHP world. It’s fun watching all those interesting projects out there. But it’s not about technology only. You’ll need to know about the people driving the projects to understand what’s going on. What are the visible, vocal & visionary PHPeople up to?

Read more

10 Years of Git: An Interview with Git Creator Linus Torvalds

So I'd like to stress that while it really came together in just about ten days or so, it wasn't like it was some kind of mad dash of coding. The actual amount of that early code is actually fairly small, it all depended on getting the basic ideas right. And that I had been mulling over for a while before the whole project started. I'd seen the problems others had. I'd seen what I wanted to avoid doing.
http://www.linux.com/news/featured-blogs/185-jennifer-cloer/821541-10-years-of-git-an-interview-with-git-creator-linus-torvalds

The source code manager to build git was... git.

Read more

Recommended reading: Clean Code

The last few weeks I made the time to read Clean Code by Robert C. "Uncle Bob" Martin. It's loaded with small and big tips and advice on how to improve the readability of your code and why this is important. Recommended reading for programmers of all levels.

A quote:

I am not expecting you to be able to write clean and elegant programs in one pass. If we have learned anything over the last couple of decades, it is that programming is a craft more than it is a science. To write clean code, you must first write dirty code and then clean it.
This should not be a surprise to you. We learned this truth in grade school when our teachers tried (usually in vain) to get us to write rough drafts of our compositions. The process, they told us, was that we should write a rough draft, then a second draft, then several subsequent drafts until we had our final version. Writing clean compositions, they tried to tell us, is a matter of successive refinement.
Most freshman programmers (like most grade-schoolers) don’t follow this advice particularly well. They believe that the primary goal is to get the program working. Once it’s “working,” they move on to the next task, leaving the “working” program in whatever state they finally got it to “work.” Most seasoned programmers know that this is professional suicide.

Read more