Skip to content

Commit

Permalink
updates (#237)
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshuaEstes authored Oct 23, 2024
1 parent ca1022b commit 9094e1c
Show file tree
Hide file tree
Showing 7 changed files with 419 additions and 147 deletions.
240 changes: 213 additions & 27 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,31 +1,217 @@
* @SonsOfPHP/Members
# If nothing matches, assign to me
* @JoshuaEstes

# Make Documentation Team
docs/ @JoshuaEstes
# Default documentation owner
/docs @JoshuaEstes

# Each project needs a Team
# ==============================================================================

# bard
/src/SonsOfPHP/Bard @JoshuaEstes
/docs/bard @JoshuaEstes

# ==============================================================================

# assert
/src/SonsOfPHP/*/Assert @JoshuaEstes
/docs/*/assert @JoshuaEstes

# autoloader
/src/SonsOfPHP/*/Autoloader @JoshuaEstes
/docs/*/autoloader @JoshuaEstes

# barcode
/src/SonsOfPHP/*/Barcode @JoshuaEstes
/docs/*/barcode @JoshuaEstes

# cache
/src/SonsOfPHP/*/Cache @JoshuaEstes
/docs/*/cache @JoshuaEstes

# clock
/src/SonsOfPHP/*/Clock @JoshuaEstes
/docs/*/clock @JoshuaEstes

# config
/src/SonsOfPHP/*/Config @JoshuaEstes
/docs/*/config @JoshuaEstes

# container
/src/SonsOfPHP/*/Container @JoshuaEstes
/docs/*/container @JoshuaEstes

# cookie
/src/SonsOfPHP/*/Cookie @JoshuaEstes
/docs/*/cookie @JoshuaEstes

# cqrs
/src/SonsOfPHP/*/Cqrs @JoshuaEstes
/docs/*/cqrs @JoshuaEstes

# crypt
/src/SonsOfPHP/*/Crypt @JoshuaEstes
/docs/*/crypt @JoshuaEstes

# csv
/src/SonsOfPHP/*/Csv @JoshuaEstes
/docs/*/csv @JoshuaEstes

# dotenv
/src/SonsOfPHP/*/Dotenv @JoshuaEstes
/docs/*/dotenv @JoshuaEstes

# error-handler
/src/SonsOfPHP/*/ErrorHandler @JoshuaEstes
/docs/*/error-handler @JoshuaEstes

# event-dispatcher
/src/SonsOfPHP/*/EventDispatcher @JoshuaEstes
/docs/*/event-dispatcher @JoshuaEstes

# event-sourcing
/src/SonsOfPHP/*/EventSourcing @JoshuaEstes
/src/SonsOfPHP/Bundle/EventSourcingBundle @JoshuaEstes
/docs/*/event-sourcing @JoshuaEstes

# feature-toggle
/src/SonsOfPHP/*/FeatureToggle @JoshuaEstes
/src/SonsOfPHP/Bundle/FeatureToggleBundle @JoshuaEstes
/docs/*/feature-toggle @JoshuaEstes

# file
/src/SonsOfPHP/*/File @JoshuaEstes
/docs/*/file @JoshuaEstes

# filesystem
/src/SonsOfPHP/*/Filesystem @JoshuaEstes
/src/SonsOfPHP/Bridge/Aws/Filesystem @JoshuaEstes
/src/SonsOfPHP/Bridge/LiipImagine/Filesystem @JoshuaEstes
/src/SonsOfPHP/Bundle/FilesystemBundle @JoshuaEstes
/docs/*/filesystem @JoshuaEstes

# form
/src/SonsOfPHP/*/Form @JoshuaEstes
/docs/*/form @JoshuaEstes

# http-client
/src/SonsOfPHP/*/HttpClient @JoshuaEstes
/docs/*/http-client @JoshuaEstes

# http-factory
/src/SonsOfPHP/*/HttpFactory @JoshuaEstes
/docs/*/http-factory @JoshuaEstes

# http-handler
/src/SonsOfPHP/*/HttpHandler @JoshuaEstes
/docs/*/http-handler @JoshuaEstes

# http-message
/src/SonsOfPHP/*/HttpMessage @JoshuaEstes
/docs/*/http-message @JoshuaEstes

# internationalization
/src/SonsOfPHP/*/Internationalization @JoshuaEstes
/docs/*/internationalization @JoshuaEstes

# json
/src/SonsOfPHP/*/Json @JoshuaEstes
/docs/*/json @JoshuaEstes

# link
/src/SonsOfPHP/*/Link @JoshuaEstes
/docs/*/link @JoshuaEstes

# lock
/src/SonsOfPHP/*/Lock @JoshuaEstes
/docs/*/lock @JoshuaEstes

# logger
/src/SonsOfPHP/*/Logger @JoshuaEstes
/src/SonsOfPHP/Bundle/LoggerBundle @JoshuaEstes
/docs/*/logger @JoshuaEstes

# mailer
/src/SonsOfPHP/*/Mailer @JoshuaEstes
/src/SonsOfPHP/Bundle/MailerBundle @JoshuaEstes
/docs/*/mailer @JoshuaEstes

# math
/src/SonsOfPHP/*/Math @JoshuaEstes
/docs/*/math @JoshuaEstes

# message-bus
/src/SonsOfPHP/*/MessageBus @JoshuaEstes
/docs/*/message-bus @JoshuaEstes

# mime
/src/SonsOfPHP/*/Mime @JoshuaEstes
/docs/*/mime @JoshuaEstes

# money
/src/SonsOfPHP/*/Money @JoshuaEstes
/src/SonsOfPHP/Bridge/Twig/Money @JoshuaEstes
/src/SonsOfPHP/Bundle/MoneyBundle @JoshuaEstes
/docs/*/money @JoshuaEstes

# navigation
/src/SonsOfPHP/*/Navigation @JoshuaEstes
/docs/*/navigation @JoshuaEstes

# pager
/src/SonsOfPHP/*/Pager @JoshuaEstes
/src/SonsOfPHP/Bridge/Doctrine/*/Pager @JoshuaEstes
/src/SonsOfPHP/Bundle/PagerBundle @JoshuaEstes
/docs/*/pager @JoshuaEstes

# pay
/src/SonsOfPHP/*/Pay @JoshuaEstes
/docs/*/pay @JoshuaEstes

# pdf
/src/SonsOfPHP/*/Pdf @JoshuaEstes
/docs/*/pdf @JoshuaEstes

# phar
/src/SonsOfPHP/*/Phar @JoshuaEstes
/docs/*/phar @JoshuaEstes

# phone-number
/src/SonsOfPHP/*/PhoneNumber @JoshuaEstes
/docs/*/phone-number @JoshuaEstes

# router
/src/SonsOfPHP/*/Router @JoshuaEstes
/docs/*/router @JoshuaEstes

# search
/src/SonsOfPHP/*/Search @JoshuaEstes
/docs/*/search @JoshuaEstes

# serializer
/src/SonsOfPHP/*/Serializer @JoshuaEstes
/docs/*/serializer @JoshuaEstes

# session
/src/SonsOfPHP/*/Session @JoshuaEstes
/docs/*/session @JoshuaEstes

# state-machine
/src/SonsOfPHP/*/StateMachine @JoshuaEstes
/src/SonsOfPHP/Bundle/StateMachineBundle @JoshuaEstes
/docs/*/state-machine @JoshuaEstes

# stdlib
/src/SonsOfPHP/*/Stdlib @JoshuaEstes
/docs/*/stdlib @JoshuaEstes

# user-agent
/src/SonsOfPHP/*/UserAgent @JoshuaEstes
/docs/*/user-agent @JoshuaEstes

# validator
/src/SonsOfPHP/*/Validator @JoshuaEstes
/docs/*/validator @JoshuaEstes

# Each component/contract needs a Team
/src/SonsOfPHP/**/Assert @JoshuaEstes
/src/SonsOfPHP/**/Cache @JoshuaEstes
/src/SonsOfPHP/**/Clock @JoshuaEstes
/src/SonsOfPHP/**/Container @JoshuaEstes
/src/SonsOfPHP/**/Cookie @JoshuaEstes
/src/SonsOfPHP/**/Common @JoshuaEstes
/src/SonsOfPHP/**/Cqrs @JoshuaEstes
/src/SonsOfPHP/**/EventDispatcher @JoshuaEstes
/src/SonsOfPHP/**/EventSourcing @JoshuaEstes
/src/SonsOfPHP/**/FeatureToggle @JoshuaEstes
/src/SonsOfPHP/**/Filesystem @JoshuaEstes
/src/SonsOfPHP/**/HttpFactory @JoshuaEstes
/src/SonsOfPHP/**/HttpHandler @JoshuaEstes
/src/SonsOfPHP/**/HttpMessage @JoshuaEstes
/src/SonsOfPHP/**/Json @JoshuaEstes
/src/SonsOfPHP/**/Link @JoshuaEstes
/src/SonsOfPHP/**/Logger @JoshuaEstes
/src/SonsOfPHP/**/Mailer @JoshuaEstes
/src/SonsOfPHP/**/Money @JoshuaEstes
/src/SonsOfPHP/**/Pager @JoshuaEstes
/src/SonsOfPHP/**/StateMachine @JoshuaEstes
/src/SonsOfPHP/**/Version @JoshuaEstes
# version
/src/SonsOfPHP/*/Version @JoshuaEstes
/docs/*/version @JoshuaEstes
20 changes: 17 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# start: Executables
COMPOSER = composer
PHP = php
DOCKER_COMPOSE = docker compose
COMPOSER = composer
PHP = php
# end: Executables

# start: Tools
Expand Down Expand Up @@ -83,7 +84,7 @@ clean: ## Remove all vendor folders, composer.lock files, and removes build arti
rm -rf src/SonsOfPHP/Bundle/*/vendor/ src/SonsOfPHP/Bundle/*/composer.lock
rm -rf src/SonsOfPHP/Component/*/vendor/ src/SonsOfPHP/Component/*/composer.lock
rm -rf src/SonsOfPHP/Contract/*/vendor/ src/SonsOfPHP/Contract/*/composer.lock
rm -rf src/tools/*/vendor/ src/tools/*/composer.lock
@#rm -rf src/tools/*/vendor/ src/tools/*/composer.lock

# This will upgrade the code to whatever the standards are
# NOTE: This may make changes to the source code
Expand Down Expand Up @@ -115,6 +116,19 @@ coverage: XDEBUG_MODE=coverage
coverage: PHPUNIT_OPTIONS=--coverage-html $(COVERAGE_DIR)
coverage: test ## Build Code Coverage Report

##---- Docker -------------------------------------------------------------------------
.PHONY: docker-up
docker-up: ## Start containers
@$(DOCKER_COMPOSE) up --detach --remove-orphans

.PHONY: docker-down
docker-down: ## Shutdown containers
@$(DOCKER_COMPOSE) down --remove-orphans

.PHONY: docker-logs
docker-logs: ## Show live logs
@$(DOCKER_COMPOSE) logs --tail=0 --follow

##---- Code Quality -------------------------------------------------------------------
.PHONY: lint
lint: ## Lint PHP files
Expand Down
16 changes: 16 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
####
# Various Services used for integration testing
####
services:
aws:
image: localstack/localstack
ports:
- 4566:4566
memcached:
image: memcached
ports:
- 11211:11211
redis:
image: redis
ports:
- 6379:6379
50 changes: 50 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,53 @@ Please submit [Pull Requests](https://github.com/SonsOfPHP/sonsofphp/pulls) to t
### Getting Help

Please visit the [Sons of PHP Organization Discussions](https://github.com/orgs/SonsOfPHP/discussions) section to ask questions and get more help.

# About Sons of PHP

Sons of PHP is a collection of various PHP projects that are split into
"Contracts" and "Components". After that, functionality is extended by using
"Bridges". Beyond that are plugins, bundles, and packages that are specifically
for various frameworks.

The main focus of Sons of PHP is small re-usable components.

## Contracts

Everything starts with contracts. The contracts are NOT meant to replace PSR
standards. Contracts are where all the interfaces are stored. There is no
executable code here. Contracts are a way to provide other developers the
ability to create components using a standard interface.

Contracts may also extend PSR standards as well as core PHP interfaces.

Contracts are also meant to be standalone. They do not require any other
contracts other than PSRs.

## Components

All components will use the contracts to implement the code. These are the main
packages that you will use in your projects.

Components are also meant to be standalone. Generally, there will be no
additional requirements. Some components may require other additional Sons of
PHP components, but for the most part, additional functionality is added by
Bridges.

## Bridges

A bridge will connect a Sons of PHP component to another library. For example,
the Pager component has additional packages that use Doctrine. The Filesystem
component also has an AWS S3 bridge that allows you to use AWS S3 buckets to
store files.

## Bundles, Plugins, etc.

Some frameworks out there (Symfony, Laravel, etc.) allow developers to install
bundles, plugins, etc. Sons of PHP has a few of these and the leverage the
various components and bridges.

## Additional Standalone Projects

Sons of PHP also has standalone projects such as Bard. These projects are
include many different Sons of PHP components and bridges, but also include
other libraries.
Loading

0 comments on commit 9094e1c

Please sign in to comment.