This weekend I've tagged the first pre-releases of the 1.x branch! I strongly encourage everyone to test their applications and extensions against this beta and provide any feedback. (Helpful information can be found in the upgrading guide.) Unless there are any major issues we'll plan on releasing a stable 1.0.0 version in the coming weeks!
A cross-site scripting (XSS) vulnerability was found in the PHP League's CommonMark library (
league/commonmark) versions 0.15.6 through 0.18.x before 0.18.1. It allows remote attackers to insert unsafe URLs into
<a> tags (even if
false) by adding an encoded newline character in the middle (e.g., writing
I'm pleased to share that my PHP 7 Upgrade Guide ebook has been featured in the Ultimate Programmer Super Stack bundle! This is a hand-curated collection of 25+ premium ecourses, bestselling ebooks, and bonus resources that will help new programmers:
This month I released updates for a few of my open-source projects including league/commonmark, league/html-to-markdown, and colinodell/json5.
Prevent Composer from updating your Symfony components to unsupported versions with the
Have you ever botched a deployment and taken a site offline? I have—more times then I’d like to admit. What if we could completely automate the deployment process, make it lightning fast, remove most of the risk, and do it all without custom bash scripts? Better yet, what if we could use the same deployment process locally or trigger it via CI?
Releasing open-source libraries involves much more than sharing your GitHub URL with the world. There are many considerations and steps involved, especially if you want your project to be successful and long-lived.
After using phpbrew to manage my local PHP versions for a while, I got tired of re-compiling PHP after every release and decided to install multiple PHP versions side-by-side with Ondřej Surý's PPA. One of the features I missed from
phpbrew was the ability to run a command like
phpbrew use php-7.2.8 to automatically change the
php command to that version, so I ended up implementing this feature myself using symlinks and shell aliases.