Amazing PHP
9.94K subscribers
11 photos
84 links
Welcome to the Amazing PHP Channel! Here you can find a lot of interesting articles/news about PHP, frameworks, tools and development.

Support the channel: https://www.paypal.com/donate?hosted_button_id=FAYP5QJH5LVRL
Download Telegram
Modelling Reactive Systems with Event Storming and Domain-Driven Design
A successful Event Storming session — as well as a successful software project — demands equal parts art, knowledge, and technical skill. Also, it’s much cheaper to make changes to sticky notes than production code. Learning about your systems by writing code is a very expensive way of understanding and refining the business processes involved.
Creating strictly typed arrays and collections in PHP
One of the language features announced back in PHP 5.6 was the addition of the “…” token to denote that a function or method accepts a variable length of arguments.
How to use Domain-Driven Design to better understand the business
DDD is an approach to software development which strongly focuses on modeling the core business concepts – model – which in general is the most complex part of a business systems. DDD is neither a technology nor a methodology. It simply provides the best practices to take the right decisions to accelerate software projects for complicated domains.
Simply Boost Laravel Performance In Production
When you are going to deploy your Laravel project into production environment, performance becomes matter because real users will use your website or services.
Maintain Slim PHP MVC Frameworks with a Layered Structure
Fat controllers and models: an inevitable problem for most large-scale projects based on MVC frameworks such as Yii and Laravel. The primary thing that fattens controllers and models is the Active Record, a powerful and essential component of such frameworks.
#news #drupal
Security vulnerability in unmaintained Drupal contrib module puts 120000 sites at risk
http://drupal.sh/vulnerable-drupal-contrib-module-puts-120000-sites-at-risk
s Best Practice Actually Poor Practice? Dependency Injection, Type Hinting, and Unit Tests...
I've recently been in discussion with a colleague who thinks that dependency injection (DI) is over-used and, in cases where the dependency is a concrete class, unnecessary (in the latter case, he advocates simply creating new objects on the fly). I raised the point that dependency injection allows you to pass in a mock object while unit testing, but he dismissed that as irrelevant and not a valid argument as to why dependency injection is useful.
Symfony 4: Monolith vs Micro
Monolith projects versus micro-applications; a never-ending debate. Both ways to develop applications are fine in my book. Symfony supports both. Even if the Symfony Standard Edition is probably more suitable for monolith projects as it depends on the symfony/symfony package.
This Picture Will Change the Way You Learn to Code
Recently several amazing visualizations of the various technologies used by web developers in 2017 surfaced on the Interwebs. One of them (geared towards backend developers) is pictured above.

https://cdn-images-1.medium.com/max/1000/1*wS8k6IlIgSb-7-lPhaNyrQ.png
13 Simple Rules for Good Coding (from my 15 years of experience)
Hi guys, i work as a programmer more than 15 years and was using many different languages, paradigms, frameworks and other shit. And i want to share with you my rules of writing good code.
How You Can Successfully Ship New Code in a Legacy Codebase
The greek philosopher Heraclitus already knew that "change is the only constant" and as software developers we know this to be true for much of software development and business requirements.
Moving from array to class
Ever since I started using PHP, arrays have always been my friend. They are versatile, they have a wide range of functions, and they are easy to use. I kept using them versions after versions, and even with PHP 7.2, I still rely on them a lot. ...
Building flexible PHP projects
The era of full-stack frameworks is behind us. Nowadays, framework vendors are splitting their monolithic repositories into components with the help of Git subtree, allowing you to cherry-pick ones that you need for your project. This means that you can build your application on top of Zend Service Manager, Aura Router, Doctrine ORM, Laravel (Illuminate) Eloquent, Plates, Monolog, Symfony Cache, or any component out there that can be installed via Composer.
ARE TRAITS EVIL?
What do you think about Traits in PHP? Do you think they are evil and should avoid using them? If using them what are some common pitfalls fx where not to use them? Maybe you got some bad or good experience?
Getting Started with RabbitMQ in PHP
RabbitMQ is the message broker. We can use that to schedule background tasks or send events asynchronously. There are good writeups on the benefits it gives to you: Top 10 Uses For A Message Queue, Main features and benefits of message queuing.
Creating your own Domain Event Dispatcher
A couple of weeks ago we looked at implementing Domain Events. Domain Events form a crucial building block in Domain Driven Design by allowing us to effectively decouple our application using the Publish-subscribe pattern.
Matthias Noback - Hexagonal Architecture - Message-Oriented Software Design
Commands, events, queries - three types of messages that travel through your application. Some originate from the web, some from the command-line. Your application sends some of them to a database, or a message queue. What is the ideal infrastructure for an application to support this on-going stream of messages?
https://www.youtube.com/watch?v=K1EJBmwg9EQ
How I generate model factories in light speed!
I was sick and tired building model factories for every table I wanted to test in my laravel applications. So I woke up this morning and decided to try and make a helper command about this. In a Laravel 5.4 application I am currently working on, I created a new command by using the usual artisan make:command
How PHP Executes – from Source Code to Render
This article will skim through these stages and show how we can view the output from each stage to really see what is going on. Note that while some of the extensions used should already be a part of your PHP installation (such as tokenizer and OPcache), others will need to be manually installed and enabled (such as php-ast and VLD).