Standards either proposed or approved by the Framework Interop Group
Tools for manipulating CHANGELOG.md files in Keep A Changelog format, including tagging and releasing.
PSR-7 middleware foundation for building and dispatching middleware pipelines
fix: fix path to tag cloud template
Now in data::shared/
feat: adds Taskfile
For common tasks, such as building the production container images.
qa: updated ignore list
fix: fixes production dockerfiles
refactor: for production, create containers that map in all files
For each of the nginx, worker, and php images, this patch adds template dockerfile content that during deployment will be used to create "production" dockerfiles. The templated pieces use COPY to add files from the application to the container, and, in the case of the worker and php images, also runs code to install production application dependencies.
qa: fix error flagged by phpcs
qa: alphabetize ignores
qa: remove swoole from list of extensions for CI
feat: remove all functionality related to twitter
Removes commands, handlers, and events related to tweeting, as well as all configuration and dependencies.
feat: adds phly/phly-redis-task-queue
Moving from swoole to php-fpm + CLI workers.
feat: add DeferredEvent and listener and wire to provider
Brings in a DeferredEvent for use in passing events to the Redis task queue, done in a way that will decouple it from that library when creating such events.
refactor: remove usage of DeferredServiceListenerDelegator
Removes all registrations of the DeferredServiceListenerDelegator, and, when events are triggered that these listeners would listen for, instead wraps the event in a DeferredEvent. For cases where the event is only triggered by a cron, simply removes the delegator.
refactor: replace cron implementation with phly-redis-task-queue
refactor: remove swoole usage
refactor: remove mezzio-swoole dependency
feat: adds deferred event mappers for all deferred events
AbstractPayload
class with common constructor for webhook payload events.AbstractPayload
.PayloadMapper
implementation that can map payload events.Mapper
to register the payload mappers.refactor: working php-fpm + supervisord workers setup
Refactors the DEVELOPMENT docker-compose environment such that it now works as follows:
The supervisord and nginx nodes run as the zendphp user, and use a stdout logger that Docker then picks up.
The nginx configuration adapts the old swoole configuration for handling MIME types and setting cache-control/etag headers.
That node also gets the generated CSS and JS, as well as all files from the public/
tree.
The php-fpm and worker nodes share a volume, which allows the worker node to do all the initial setup tasks (generating the blog, grabbing the photo database, grabbing initial social media and feed information, etc.).
Most everything works, except for site search. This could be a CSP issue, or it could be due to the lack of generated search terms; I still need to investigate that part.
feat: healthchecks for all services, plus production config
Sets up health checks for all services. For supervisor, this meant configuring the RPC service on a local socket so that supervisorctl could provide status. For php-fpm, I found a script by Renato that provides healthchecks.
Adapts the production configuration to follow that of the development config, with the notable exception that nginx will map host 9001 to container 80, to allow the existing reverse proxy to work.
refactor: updates deployment to create new shared volume
No longer using the photodb volume, as there's a more general shared data volume.
qa: move ENV declarations for composer close to creation of composer home dir
qa: apply phpcs rules
docs: updates README to detail new tech used
refactor: move redis configuration to .docker tree, remove openswoole artifacts
etc/
tree to the .docker/etc/
tree.qa: remove spatie/async polyfill
Fixed since v1.5.5 of that library.
prod: new env version
Merge pull request #40 from weierophinney/feature/php-fpm
Feature/php fpm
| Q | A |-------------- | ------ | Documentation | yes | Bugfix | yes | BC Break | yes | New Feature | yes | RFC | no | QA | no
Refactors the project to move away from a Swoole-based application to a php-fpm application that uses a pool of CLI task/cron workers managed by supervisord. This change also means it now uses an nginx container in front of php-fpm, which then manages all static assets (except those served via object storage).
| Q | A |-------------- | ------ | Documentation | yes | Bugfix | yes | BC Break | yes | New Feature | yes | RFC | no | QA | no
Refactors the project to move away from a Swoole-based application to a php-fpm application that uses a pool of CLI task/cron workers managed by supervisord. This change also means it now uses an nginx container in front of php-fpm, which then manages all static assets (except those served via object storage).
docs: updates README to detail new tech used
refactor: move redis configuration to .docker tree, remove openswoole artifacts
etc/
tree to the .docker/etc/
tree.qa: remove spatie/async polyfill
Fixed since v1.5.5 of that library.
prod: new env version
qa: move ENV declarations for composer close to creation of composer home dir
refactor: updates deployment to create new shared volume
No longer using the photodb volume, as there's a more general shared data volume.
refactor: working php-fpm + supervisord workers setup
Refactors the DEVELOPMENT docker-compose environment such that it now works as follows:
The supervisord and nginx nodes run as the zendphp user, and use a stdout logger that Docker then picks up.
The nginx configuration adapts the old swoole configuration for handling MIME types and setting cache-control/etag headers.
That node also gets the generated CSS and JS, as well as all files from the public/
tree.
The php-fpm and worker nodes share a volume, which allows the worker node to do all the initial setup tasks (generating the blog, grabbing the photo database, grabbing initial social media and feed information, etc.).
Most everything works, except for site search. This could be a CSP issue, or it could be due to the lack of generated search terms; I still need to investigate that part.
feat: healthchecks for all services, plus production config
Sets up health checks for all services. For supervisor, this meant configuring the RPC service on a local socket so that supervisorctl could provide status. For php-fpm, I found a script by Renato that provides healthchecks.
Adapts the production configuration to follow that of the development config, with the notable exception that nginx will map host 9001 to container 80, to allow the existing reverse proxy to work.
Thats why I also encourage every1 who is asking me to use https://github.com/mezzio/mezzio/blob/3.17.x/src/Container/ApplicationConfigInjectionDelegator.php along with configuration-driven routes and pipeline so that these will be registered via config (even tho, the routes should be registered via the router directly but I guess thats another point).
I actually don't recommend that, in part because the configuration is so difficult to write, difficult to debug, and because configuration merging issues are rampant. I tend to recommend using a delegator on the Application
instance or the RouteCollectorInterface
, and then register using that service. This ensures that the routes are present for your CLI commands as well, as you will get them when pulling the related services.
The idea behind config/routes.php
was reasonable for the purpose of RAD-style microframework utilization, but not great as we expanded the framework.
feat: allow configuring list of signals to register for commands
The default set of signals can be problematic when running as a non-privileged user in supervisord. This patch allows users to configure the list of signals they want to register halt handlers for.
The configuration is:
return [
'redis-task-queue' => [
'signals' => [SIGTERM, SIGINT],
],
];
Merge pull request #3 from phly/feature/sig-flags
Allow configuring list of halt signals for commands
The default set of signals can be problematic when running as a non-privileged user in supervisord. This patch allows users to configure the list of signals they want to register halt handlers for.
The configuration is:
return [
'redis-task-queue' => [
'signals' => [SIGTERM, SIGINT],
],
];
The default set of signals can be problematic when running as a non-privileged user in supervisord. This patch allows users to configure the list of signals they want to register halt handlers for.
The configuration is:
return [
'redis-task-queue' => [
'signals' => [SIGTERM, SIGINT],
],
];
Core Committee vote started 2023-03-13.
feat: adds deferred event mappers for all deferred events
AbstractPayload
class with common constructor for webhook payload events.AbstractPayload
.PayloadMapper
implementation that can map payload events.Mapper
to register the payload mappers.Consumer API of psr/log has not changed, so allow usage with any version.
feat: allow v1 and v2 releases of psr/log
Consumer API has not changed.
Merge pull request #2 from phly/feature/psr-log-support
Allow v1 and v2 releases of psr/log