Track all your PHP and JavaScript errors in one place.
…
…only requires PHP and SQLite, you don't need anything else - no containers, no nothing
…is typo-tolerant (based on the State Set Index Algorithm and Levenshtein)
…supports phrase search using " quotation marks
…supports filtering (and ordering) on any attribute with any SQL-inspired filter statement
…supports filtering (and ordering) on Geo distance
…orders relevance based on a typical TF-IDF Cosine similarity algorithm
…auto-detects languages
…supports stemming
…is very easy to use
…is all-in-all just the easiest way to replace your good old SQL LIKE %...% queries with a way better search experience but without all the hassle of an additional service to manage. SQLite is everywhere and all it needs is your filesystem.
php terminal UI
What is Revolt?
Revolt is a rock-solid event loop for concurrent PHP applications. The usual PHP application spends most of its time waiting for I/O. While PHP is single threaded, cooperative multitasking can be used to allow for concurrency by using the waiting time to do different things.
PHP’s traditional synchronous execution flow is easy to understand. Doing one thing at a time. If you query a database, you send the query and wait for a response from the database server. Once you have the response, you can start doing the next thing.
Amp, ReactPHP, and other libraries have offered cooperative multitasking in PHP for a long time. However, their event-driven nature was incompatible to many existing interfaces and required a different thinking model. PHP 8.1 ships with fibers built-in, which offers cooperative multi-threading. Calls can be asynchronous without promises or callbacks, while still allowing for non-blocking I/O.
Every application making use of cooperative multitasking needs a single scheduler (also called event loop), which this package provides. Revolt is the result of combining years of experience of Amp’s and ReactPHP’s event loop implementations. However, it is not a full-blown framework for writing concurrent PHP applications, but only provides what’s necessary as a common base. Different (strongly) opinionated libraries can be built on top of it and both Amp and ReactPHP will continue to co-exist.
Installation
It may surprise people to learn that the PHP standard library already has everything we need to write event-driven and non-blocking applications. This package can be installed as a Composer dependency on PHP 8.1 and later.
Kaboom helps you deal with the realities of coding in long-term projects.
It provides an interface for adding temporary code to projects, code that needs
to either start or stop running after a predetermined date on the calendar, or
safety protections based on environment conditions.
... okay then, WHY Is Kaboom?
In my career, I've encountered a number of scenarios that Kaboom can help with,
but the main one always seems to be forgetfulness. Organizations often don't
take the time to circle back and clean things up, unless it is specifically
called out in some way. It's often left up to individuals to remember to return
to some arbitrary old project and spruce it up.
By adding Kaboom-backed tripwires to your project, you can schedule future
reminders that are emitted by the code itself - directly into your logging and
reporting systems!
You can also customize the tripwire behaviour. Maybe instead of logging after a
set calendar date, you would prefer to detect an environment condition and throw
an exception. This was the original use case for Kaboom, inspired by a joke on
an ancient social media website called 'Twitter' from developer Jeremy Kendall.
A set of core PHP functions rewritten to throw exceptions instead of returning false when an error is encountered.
PHP Monitor helps you set up and develop Laravel and Symfony projects. It's also great for WordPress or Drupal sites. In fact, it's a great companion for all kinds of projects, no matter the framework or CMS.
It can be seen as a replacement of Makefile, Fabric, Invoke, Shell scripts...
It comes with many helpers to make your life easier:
- Seamless parsing of arguments and options, simplifying input handling
- Autocomplete support for faster and error-free command entry
- Effortless process execution, enabling seamless integration with external
tools - Parallel processing capabilities to maximize resource utilization
- Intelligent file watching that automatically triggers actions on file
modifications - Customizable notifications to keep you informed and in control
- Robust logging for capturing and analyzing essential information
- A strong emphasis on exceptional Developer Experience (DX)
Note
Castor is still in early development, and the API is not stable yet. Even if
it not likely to change, it is still possible that it will change in the
future.
PHP Secure provides unlimited scans for absolutely FREE, while similar solutions can cost up to $10,000 a month.
The PHP Scratchpad
Enjoy coding and debugging in an editor designed for fast feedback and quick iterations. It's like a shell for your application – but with multi-line editing, code completion, and more.
This library contains functional utilities intended for use with PHP 8.1 and later. Its primary tool is the pipe() function, which takes a starting argument and then a series of callables to "pipe" that argument through. Most other functions are utilities that produce a closure that takes the return from a previous pipe() step as its only argument.
For years, I've dreamed of being able to create PHP CLI scripts that can be easily distributed without requiring users to have PHP installed on their machines.
But a scripting language needs an interpreter, they said. Not anymore! PHP still can't be compiled for real, there is a trick you can use.
Serde (pronounced "seer-dee") is a fast, flexible, powerful, and easy to use serialization and deserialization library for PHP that supports a number of standard formats. It draws inspiration from both Rust's Serde crate and Symfony Serializer, although it is not directly based on either.
At this time, Serde supports serializing PHP objects to and from PHP arrays, JSON, YAML, and CSV files. It also supports serializing to JSON or CSV via a stream. Further support is planned, but by design can also be extended by anyone.
The other day I was working on some sample code to test out an idea that involved an object with an internal nested array. This is a pretty common pattern in PHP: You have some simple one-off internal data structure so you make an informal struct using PHP associative arrays. Maybe you document it in a docblock, or maybe you're a lazy jerk and you don't. (Fight me!) But really, who bothers with defining a class for something that simple?
But that got me wondering, is that common pattern really, you know, good? Are objects actually more expensive or harder to work with than arrays? Or, more to the point, is that true today on PHP 7 given all the optimizations that have happened over the years compared with the bad old days of PHP 4?
So like any good scientist I decided to test it: What I found will shock you!