weierophinney
Repos
387
Followers
2395
Following
4

Standards either proposed or approved by the Framework Interop Group

12427
2382

Official Zend Framework repository

5552
2565

Tools for manipulating CHANGELOG.md files in Keep A Changelog format, including tagging and releasing.

174
21

PSR HTTP Message implementations

362
46

PSR-15 Middleware Microframework

288
45

PSR-7 middleware foundation for building and dispatching middleware pipelines

51
8

Events

weierophinney create tag 2023-03-18-php-fpm
Created at 2 days ago
weierophinney create tag 2023-02-24-last-openswoole-build
Created at 2 days ago

fix: fix path to tag cloud template

Now in data::shared/

Created at 4 days ago

feat: adds Taskfile

For common tasks, such as building the production container images.

qa: updated ignore list

fix: fixes production dockerfiles

  • Worker template was putting supervisor conf to wrong location
  • PHP template was missing the healthcheck script
Created at 4 days ago

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.

Created at 5 days ago

qa: fix error flagged by phpcs

qa: alphabetize ignores

qa: remove swoole from list of extensions for CI

Created at 5 days ago
delete branch
weierophinney delete branch feature/php-fpm
Created at 5 days ago

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

  • Splits out the factory and config for the Predis client, and alters the cache factory to use the Predis client service.
  • Adds mappers for the two cron tasks already defined, and configures them.
  • Removes previous Cron implementation.

refactor: remove swoole usage

  • Removes the swoole task listener
  • Removes the Swoole config provider from the configuration
  • Fixes an issue in the DockerAccessLoggerFactory, ensuring logging works correctoy

refactor: remove mezzio-swoole dependency

feat: adds deferred event mappers for all deferred events

  • Creates AbstractPayload class with common constructor for webhook payload events.
  • Refactors all payload event implementations to extend the AbstractPayload.
  • Creates a common PayloadMapper implementation that can map payload events.
  • Adds and registers delegators for the redis task queue 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:

  • redis node
  • worker node running supervisord, which manages task and cron workers (task workers use redis)
  • nginx node, sitting in front of:
    • php-fpm node

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

  • Moves the redis configuration from the etc/ tree to the .docker/etc/ tree.
  • Removes openswoole and legacy php dockerfiles
  • Removes makefile for creating and pushing the openswoole container

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

Created at 5 days ago
pull request closed
Feature/php fpm

| Q | A |-------------- | ------ | Documentation | yes | Bugfix | yes | BC Break | yes | New Feature | yes | RFC | no | QA | no

Description

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).

Created at 5 days ago
pull request opened
Feature/php fpm

| Q | A |-------------- | ------ | Documentation | yes | Bugfix | yes | BC Break | yes | New Feature | yes | RFC | no | QA | no

Description

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).

Created at 5 days ago

docs: updates README to detail new tech used

refactor: move redis configuration to .docker tree, remove openswoole artifacts

  • Moves the redis configuration from the etc/ tree to the .docker/etc/ tree.
  • Removes openswoole and legacy php dockerfiles
  • Removes makefile for creating and pushing the openswoole container

qa: remove spatie/async polyfill

Fixed since v1.5.5 of that library.

prod: new env version

Created at 5 days ago

qa: apply phpcs rules

Created at 5 days ago

qa: move ENV declarations for composer close to creation of composer home dir

Created at 5 days ago

refactor: updates deployment to create new shared volume

No longer using the photodb volume, as there's a more general shared data volume.

Created at 6 days ago

refactor: working php-fpm + supervisord workers setup

Refactors the DEVELOPMENT docker-compose environment such that it now works as follows:

  • redis node
  • worker node running supervisord, which manages task and cron workers (task workers use redis)
  • nginx node, sitting in front of:
    • php-fpm node

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.

Created at 6 days ago
issue comment
Modules of a MvcApplication are not properly bootstrapped

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.

Created at 1 week ago
weierophinney create tag 0.4.4
Created at 1 week ago
weierophinney delete branch feature/sig-flags
Created at 1 week ago

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

Created at 1 week ago
pull request closed
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],
    ],
];
Created at 1 week ago
weierophinney create branch feature/sig-flags
Created at 1 week ago
pull request opened
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],
    ],
];
Created at 1 week ago
issue comment
Add errata for addition of parameter and return type declarations to PSR-7

Core Committee vote started 2023-03-13.

Created at 1 week ago

feat: adds deferred event mappers for all deferred events

  • Creates AbstractPayload class with common constructor for webhook payload events.
  • Refactors all payload event implementations to extend the AbstractPayload.
  • Creates a common PayloadMapper implementation that can map payload events.
  • Adds and registers delegators for the redis task queue Mapper to register the payload mappers.
Created at 1 week ago
create branch
weierophinney create branch feature/php-fpm
Created at 1 week ago
weierophinney create tag 0.4.3
Created at 1 week ago
weierophinney delete branch feature/psr-log-support
Created at 1 week ago
pull request closed
Allow v1 and v2 releases of psr/log

Consumer API of psr/log has not changed, so allow usage with any version.

Created at 1 week ago

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

Created at 1 week ago