Expressive Code & Real Time Facades
Recently, I worked on some code that surfaced my most common use-case for Laravel 5.4’s “real-time” facades. If you’re not familiar with this feature, it allows you to use any of your application’s classes as a Laravel “facade” on-demand by prefixingFacades to the namespace when importing the class. This is not a feature that is littered throughout my code, but I find it occasionally provides a clean, testable approach to writing expressive object APIs.
Recently, I worked on some code that surfaced my most common use-case for Laravel 5.4’s “real-time” facades. If you’re not familiar with this feature, it allows you to use any of your application’s classes as a Laravel “facade” on-demand by prefixingFacades to the namespace when importing the class. This is not a feature that is littered throughout my code, but I find it occasionally provides a clean, testable approach to writing expressive object APIs.
Best practices for handling exceptional behavior
Dealing with exceptional situations is often neglected aspect of application development. For most, the first association of the notion is throwing/catching exceptions, but actually it is quite a broad topic.
Dealing with exceptional situations is often neglected aspect of application development. For most, the first association of the notion is throwing/catching exceptions, but actually it is quite a broad topic.
Building Searchable Encrypted Databases with PHP and SQL
This question shows up from time to time in open source encryption libraries' bug trackers. This was one of the "weird problems" covered in my talk at B-Sides Orlando (titled Building Defensible Solutions to Weird Problems), and we've previously dedicated a small section to it in one of our white papers.
The question is, How do we securely encrypt database fields but still use these fields in search queries?
This question shows up from time to time in open source encryption libraries' bug trackers. This was one of the "weird problems" covered in my talk at B-Sides Orlando (titled Building Defensible Solutions to Weird Problems), and we've previously dedicated a small section to it in one of our white papers.
The question is, How do we securely encrypt database fields but still use these fields in search queries?
Factory and Repository in the Domain
I’m a big fan of the book Domain Driven Design, and for some time I’ve been pushing the principles and patterns in my workplace. I’ve never managed to get ‘into’ the more theoretical parts of the book, and I chuckle each time one of my colleagues refers to the “contours of the domain”, however it’s up there with books that have caused a substantial shift in my thinking.
#advanced #ddd
I’m a big fan of the book Domain Driven Design, and for some time I’ve been pushing the principles and patterns in my workplace. I’ve never managed to get ‘into’ the more theoretical parts of the book, and I chuckle each time one of my colleagues refers to the “contours of the domain”, however it’s up there with books that have caused a substantial shift in my thinking.
#advanced #ddd
The case for singleton objects, façades, and helper functions
Last year I took several Scala courses on Coursera. It was an interesting experience and it has brought me a lot of new ideas. One of these is the idea of a singleton object (as opposed to a class). It has the following characteristics
Last year I took several Scala courses on Coursera. It was an interesting experience and it has brought me a lot of new ideas. One of these is the idea of a singleton object (as opposed to a class). It has the following characteristics
Easy PSR-7 with Zend Diactoros
It’s no mystery that I’m a fan (most-of-the-time) of the Zend Framework — heck I’m a Zend Framework 2 Certified System Architect (Phew! Big title). But as a crusader for decoupled libraries I was beginning to be disillusioned by the gentle giant and it’s enormous spiderweb of dependancies.
It’s no mystery that I’m a fan (most-of-the-time) of the Zend Framework — heck I’m a Zend Framework 2 Certified System Architect (Phew! Big title). But as a crusader for decoupled libraries I was beginning to be disillusioned by the gentle giant and it’s enormous spiderweb of dependancies.
Event-Driven PHP with ReactPHP: Event Loop And Timers
PHP was born in the 90s and was a very powerful tool for creating web pages. From its born it has a synchronous run-time, that means that we start execution of some function, and the code flow is blocked until this function is being executed. And it was not considered as something bad. On the opposite many libraries consider that the blocked flow is normal.
PHP was born in the 90s and was a very powerful tool for creating web pages. From its born it has a synchronous run-time, that means that we start execution of some function, and the code flow is blocked until this function is being executed. And it was not considered as something bad. On the opposite many libraries consider that the blocked flow is normal.
Being a Full Stack Developer
A full stack developer who can get from a prototype to full MVP (minimum viable product) is often considered a jack of all trades, master of none, and with good reason. To define the modern full stack developer, we first need to focus on what the full stack developer used to be.
A full stack developer who can get from a prototype to full MVP (minimum viable product) is often considered a jack of all trades, master of none, and with good reason. To define the modern full stack developer, we first need to focus on what the full stack developer used to be.
Your interpreter isn’t safe anymore — The PHP module rootkit
Before I begin, I want to make it clear that I condemn the act of using rootkits or any other form of malware without clear consent from the individual or organization being targeted. This post aims to educate the reader about the dangers of malicious PHP modules and outline the very real threat that they pose.
Before I begin, I want to make it clear that I condemn the act of using rootkits or any other form of malware without clear consent from the individual or organization being targeted. This post aims to educate the reader about the dangers of malicious PHP modules and outline the very real threat that they pose.
Make your Laravel App Fly with PHP OPcache
Every time you execute a PHP script, the script needs to be compiled to byte code. OPcache leverages a cache for this bytecode, so the next time the same script is requested, it doesn’t have to recompile it. This can save some precious execution time, and thus make your app faster (and maybe save some server costs).
Every time you execute a PHP script, the script needs to be compiled to byte code. OPcache leverages a cache for this bytecode, so the next time the same script is requested, it doesn’t have to recompile it. This can save some precious execution time, and thus make your app faster (and maybe save some server costs).
Build A Simple Chat With ReactPHP Socket: Server
In this article, we are going to build a simple chat server based on ReactPHP Socket Component. With this component, we can build simple async, streaming plaintext TCP/IP or a secure TLS socket server.
In this article, we are going to build a simple chat server based on ReactPHP Socket Component. With this component, we can build simple async, streaming plaintext TCP/IP or a secure TLS socket server.
Using non-breakable spaces in test method names
Yes. This article is about using non-breakable spaces to name tests. And the fact that it’s awesome. And why you should use them too.
Yes. This article is about using non-breakable spaces to name tests. And the fact that it’s awesome. And why you should use them too.
Doctrine sharding
We chose Doctrine as our ORM so let’s see what it offers to us.
First of all you have to note that Doctrine is composed mainly by two different parts: DBAL and ORM. ORM leverages DBAL functionalities and it’s completely transparent for sharding. DBAL is the layer we’re interested in. Please note we’re using DBAL 2.5.12 as the moment of writing.
We chose Doctrine as our ORM so let’s see what it offers to us.
First of all you have to note that Doctrine is composed mainly by two different parts: DBAL and ORM. ORM leverages DBAL functionalities and it’s completely transparent for sharding. DBAL is the layer we’re interested in. Please note we’re using DBAL 2.5.12 as the moment of writing.
Maybe in PHP
Doing functional programming in a language as PHP, which is almost completely used as an imperative or object oriented way, is not always easy. Good progresses have been made thanks to the introduction of callable type hints in PHP 5.4 and the diffusion of functional interfaces like the ones present in PSR-7.
Doing functional programming in a language as PHP, which is almost completely used as an imperative or object oriented way, is not always easy. Good progresses have been made thanks to the introduction of callable type hints in PHP 5.4 and the diffusion of functional interfaces like the ones present in PSR-7.
What’s all this “immutable date” stuff, anyway?
A simple but real-world example of the difference between a mutable and immutable object, and why you should care…
A simple but real-world example of the difference between a mutable and immutable object, and why you should care…
Event Sourcing for the rest of us
Event Sourcing, The CommandBus or Repository of 2017? Surly you’ve heard about it, but what exactly is it?
Event Sourcing, The CommandBus or Repository of 2017? Surly you’ve heard about it, but what exactly is it?
RESTful API Design Tips from Experience
A working guide of API design tips and trend evaluations.
A working guide of API design tips and trend evaluations.
Building a realtime dashboard powered by Laravel and Vue (2017 edition)
At Spatie we have a tv screen against the wall that displays a dashboard. This dashboard displays the tasks our team should be working on, important events in the near future, which music is playing at our office, and so on.
At Spatie we have a tv screen against the wall that displays a dashboard. This dashboard displays the tasks our team should be working on, important events in the near future, which music is playing at our office, and so on.
Slack App with Laravel
You always wanted to know how to create a Slack app?
Well, who doesn’t want to?
You always wanted to know how to create a Slack app?
Well, who doesn’t want to?
How to Analyze Tweet Sentiments with PHP Machine Learning
As of late, it seems everyone and their proverbial grandma is talking about Machine Learning. Your social media feeds are inundated with posts about ML, Python, TensorFlow, Spark, Scala, Go and so on; and if you are anything like me, you might be wondering, what about PHP?
As of late, it seems everyone and their proverbial grandma is talking about Machine Learning. Your social media feeds are inundated with posts about ML, Python, TensorFlow, Spark, Scala, Go and so on; and if you are anything like me, you might be wondering, what about PHP?
Building Scalable Applications Using Event Sourcing and CQRS
About a year ago, I came across the terms event sourcing and CQRS. I have been fascinated by it ever since. Right now, I am in the middle of building out event-driven microservice infrastructure at Andela using event sourcing. Check out Building Out an Antifragile Microservice Architecture @ Andela — Design Consideration; my previous blog post to find out some of the design consideration we had to make.
About a year ago, I came across the terms event sourcing and CQRS. I have been fascinated by it ever since. Right now, I am in the middle of building out event-driven microservice infrastructure at Andela using event sourcing. Check out Building Out an Antifragile Microservice Architecture @ Andela — Design Consideration; my previous blog post to find out some of the design consideration we had to make.