Symfony is a PHP framework originally created by the Sensio Labs company in 2005. It is free software released under the MIT license. The actual major version is 4 and the last minor version is 4.3. One of the most interesting feature of this framework is that is has a predictable roadmap which is a huge edge when using in a professional context. It also provides a long term support version (LTS) which provides a minimum 3 years maintenance period. The actual LTS is 3.4.
Published on 2019-12-07 • Modified on 2019-12-07
In this post, we will see how to implement a simple honeypot in a Symfony form to avoid spam. We will try it on a newsletter form with a unique email field. We'll also log what is blocked by the trap to check if it works correctly.
Published on 2019-11-16 • Modified on 2019-11-29
In this third and last part, we will continue to improve our search engine. First, we will enhance our elasticsearch stack with Kibana. Then, we will implement an autocomplete using an elasticsearch suggester.
Published on 2019-10-28 • Modified on 2019-10-28
This is the second part of the tutorial. In this post, we will see how to improve our search engine to make is much more relevant. We will use an alias, create a custom command to populate the index. We will tune the search applying boosts to some fields and eventually we will paginate the result list.
Published on 2019-09-22 • Modified on 2019-09-22
In this post, we will see how to create a full-text search engine with elasticsearch in a Symfony application. We will use Docker compose to set up an elasticsearch stack. We will try to keep the configuration as minimal as possible keeping the sensible default components values. In the end, on this website, we will able to search for articles and snippets matching one or several keywords.
Published on 2019-08-23 • Modified on 2019-08-23
In this post, we will see how to hide the front controller's file name of a Symfony application so it can't be accessed when typing it: "index.php". The less the users (or hackers of course) will know about the technical implementation of your website, the better it is.
Published on 2019-06-29 • Modified on 2019-07-01
In this post, we will see how to implement a simple feature flag. This flag will help us to debug our forms and will allow to disable the HTML5 client side validation of all the forms of an application.
Published on 2019-06-05 • Modified on 2019-06-05
In this post, we will see how to use the NotCompromisedPassword validator which was introduced in Symfony 4.3. This validator allows us to check if a given password was publicly exposed in a data breach and is therefore compromised. We will see how to use it manually and how to offer the ability to the user to test their password with this validation.
Published on 2019-04-18 • Modified on 2019-04-19
In this post, we will see how to implement a "Read in your language" link in your pages. The goal will be to detect the user browser preferred language and show him a link if the current page is available in his language.
Published on 2019-03-14 • Modified on 2019-03-20
In this post, we will see how to send logs to Slack. A typical usage is of course to send critical errors so you are warned in real time to be able to quickly fix the issues. But we can also send other types of notifications.
Published on 2019-01-29 • Modified on 2019-06-06
In this post, we will review one of the most used and useful service (in fact it's a value object) provided by Symfony which is the Request service Is is part of the HttpFoundation component. Symfony is indeed a "Request/Response" framework. It will be interactive, that means that you will be able to change the URL used in the examples and provide your own one so you can test with different parameters. It will therefore save you manual
dump() calls. 😉
Published on 2018-11-16 • Modified on 2019-01-06
In this post, swe will see how to implement a fail2ban like system for Symfony. It will log login failure attempts for a given IP and will prevent further tries once a critical threshold is reached. When happening, a customized error page will be displayed to the user. ⏹