It has been while (almost two years) since I wrote an article here and I’ve decided to make my triumphant return with an article I never managed to get around to writing.
As the title may suggest, this article is about streamlining validation with Laravel. While the final aim is to explain and present you with a quick and simple abstracted validator that requires minimal code in the actual implementation stage, before we get there I will need to cover the usual methods of validation which are default validation, form request validation and model validation. So let’s start.
Now that I’ve managed to move away from working at home to working in a shared office space, I aim to separate and compartmentalise properly, allowing me to focus on some personal projects that I’ve managed to accumulate over the last few years.
As I mentioned in my previous article Office Space and Transitions, not only have I acquired the aforementioned office space, I’ve gone about setting up Ollie’s Lab as a way to slowly migrate towards an independent entity. One of the things I plan to do with this newly formed entity, is release applications and systems whether they’re open source, hosted or self hosted services. This article is about the first of these projects, a project which as of yet does not have a name (I find naming things to be a tricky task), but is a free service available to anyone, or at least will be soon.
So about a week or so ago I found myself started a few projects, some for clients and some personal. While I doing this I noticed that I was copying and pasting a lot of basic classes and configurations that I use in almost everyone of my projects, so I decided to create myself a toolkit to use with my projects. My choice was an annoying composer configuration connecting to private repositories, or just making it a public repository with a package on packagist, so naturally I went with the second option. You can find the package here, and the repository here.
As I stated above, the idea behind this was to provide myself with a simple toolkit for us in my projects, to save myself duplicating code and having the modify multiple files if I fix a bug or make improvements. That being said, it’s available for others to use should they wish for a basic toolkit, or would like a basis to build their own. With that in mind, I’ve decided to write this article with some further information regarding it.
In an attempt to breath some life back into this blog I’ll be making an effort to post more frequently, and what better place to start, than with my movement to shared office space and my plans for the future.
For those of you that frequent the Laravel irc channel on freenode, you may have been witness to a recurring conversation surrounding Laravel routing, namely, using http methods other than POST & GET, and the use of Route::controller() & Route::resource(). Well this article plans to cover those bases as well as some added fun regarding Laravel routes, that may help.
This is just a quick post really about a small project I undertook a month or two ago.
The project was a very small utility minecraft mod. The idea stemmed from playing on a server with friends, I had started to notice that every time I went mining my inventory would be full of ores, which is pretty normal, but upon closer inspection I noticed that I had things like, 4 different kinds of copper and in some cases, 8 different kinds of tin. Now I know that some mods (Minefactory Reloaded I think?) have added in specific machines that facilitate the conversion of all these ores to one type, and the putting them through something like a macerator or pulveriser would convert them to the same thing (It wouldn’t, it’d convert them to the mods version, dependent on the machine), or you could just setup some ender bag + chest + automated system to convert them. The problem was, that once I got back to my home/base I had plenty of space for the ores, and they weren’t an issue, the annoying thing was having to frequently travel back because my inventory is full.
User authentication is a huge part of web applications, with it being necessary in the majority of cases, on top of which, it’s usually the first part of any system that a developer will approach, or at least it should be. Laravel is a powerful, easy to use framework that provides you with the basic tools to create a simple ACL to suit your needs.
I am aware that there are many packages for Laravel that offer this functionality, but I find them often to be more complicated than necessary. In this article I will detail how to create a simple yet highly customisable ACL using the basic tools that Laravel ships with.
Many of you will have heard this quote before but for those who haven’t, it’s a quote from Confucius, a Chinese teacher, editor, politician, and philosopher of the Spring and Autumn period of Chinese history. That being said, the origin of this particular quote is not the topic of this post, but more the meaning and how I feel that more people could benefit from paying attention to this.
It’s quite likely that many of us in the tech industry already live by this whether or not it’s intentional or not. Like me, I imagine many of you do what you do because you enjoy it, I didn’t chose to be a PHP developer for monetary gain or anything other than the fact that I enjoy it, which means that there is a burning passion within me for what I do.
For those of you that read my tweets and/or articles, you’ll be familiar with a recent post I wrote about the state of UK freelancing and how we don’t have a home on the web that we can call our own, a home that enables us to find projects and compete with other freelancers in a fair and unbiased way, other freelancers mind you, that are from the UK, so we’re not undercut by those who live in parts of the world where the price of living is lower, and in some cases, considerably lower. If you aren’t, you can read it here.
I’ve spoke to a fair few people about my idea, which includes a very brief Twitter conversation (about 4 tweets), with the UK country manager for Freelancer, who said the following: