Skip to content

Commit 9094e1c

Browse files
authored
updates (SonsOfPHP#237)
1 parent ca1022b commit 9094e1c

File tree

7 files changed

+419
-147
lines changed

7 files changed

+419
-147
lines changed

.github/CODEOWNERS

Lines changed: 213 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,217 @@
1-
* @SonsOfPHP/Members
1+
# If nothing matches, assign to me
2+
* @JoshuaEstes
23

3-
# Make Documentation Team
4-
docs/ @JoshuaEstes
4+
# Default documentation owner
5+
/docs @JoshuaEstes
56

6-
# Each project needs a Team
7+
# ==============================================================================
8+
9+
# bard
710
/src/SonsOfPHP/Bard @JoshuaEstes
11+
/docs/bard @JoshuaEstes
12+
13+
# ==============================================================================
14+
15+
# assert
16+
/src/SonsOfPHP/*/Assert @JoshuaEstes
17+
/docs/*/assert @JoshuaEstes
18+
19+
# autoloader
20+
/src/SonsOfPHP/*/Autoloader @JoshuaEstes
21+
/docs/*/autoloader @JoshuaEstes
22+
23+
# barcode
24+
/src/SonsOfPHP/*/Barcode @JoshuaEstes
25+
/docs/*/barcode @JoshuaEstes
26+
27+
# cache
28+
/src/SonsOfPHP/*/Cache @JoshuaEstes
29+
/docs/*/cache @JoshuaEstes
30+
31+
# clock
32+
/src/SonsOfPHP/*/Clock @JoshuaEstes
33+
/docs/*/clock @JoshuaEstes
34+
35+
# config
36+
/src/SonsOfPHP/*/Config @JoshuaEstes
37+
/docs/*/config @JoshuaEstes
38+
39+
# container
40+
/src/SonsOfPHP/*/Container @JoshuaEstes
41+
/docs/*/container @JoshuaEstes
42+
43+
# cookie
44+
/src/SonsOfPHP/*/Cookie @JoshuaEstes
45+
/docs/*/cookie @JoshuaEstes
46+
47+
# cqrs
48+
/src/SonsOfPHP/*/Cqrs @JoshuaEstes
49+
/docs/*/cqrs @JoshuaEstes
50+
51+
# crypt
52+
/src/SonsOfPHP/*/Crypt @JoshuaEstes
53+
/docs/*/crypt @JoshuaEstes
54+
55+
# csv
56+
/src/SonsOfPHP/*/Csv @JoshuaEstes
57+
/docs/*/csv @JoshuaEstes
58+
59+
# dotenv
60+
/src/SonsOfPHP/*/Dotenv @JoshuaEstes
61+
/docs/*/dotenv @JoshuaEstes
62+
63+
# error-handler
64+
/src/SonsOfPHP/*/ErrorHandler @JoshuaEstes
65+
/docs/*/error-handler @JoshuaEstes
66+
67+
# event-dispatcher
68+
/src/SonsOfPHP/*/EventDispatcher @JoshuaEstes
69+
/docs/*/event-dispatcher @JoshuaEstes
70+
71+
# event-sourcing
72+
/src/SonsOfPHP/*/EventSourcing @JoshuaEstes
73+
/src/SonsOfPHP/Bundle/EventSourcingBundle @JoshuaEstes
74+
/docs/*/event-sourcing @JoshuaEstes
75+
76+
# feature-toggle
77+
/src/SonsOfPHP/*/FeatureToggle @JoshuaEstes
78+
/src/SonsOfPHP/Bundle/FeatureToggleBundle @JoshuaEstes
79+
/docs/*/feature-toggle @JoshuaEstes
80+
81+
# file
82+
/src/SonsOfPHP/*/File @JoshuaEstes
83+
/docs/*/file @JoshuaEstes
84+
85+
# filesystem
86+
/src/SonsOfPHP/*/Filesystem @JoshuaEstes
87+
/src/SonsOfPHP/Bridge/Aws/Filesystem @JoshuaEstes
88+
/src/SonsOfPHP/Bridge/LiipImagine/Filesystem @JoshuaEstes
89+
/src/SonsOfPHP/Bundle/FilesystemBundle @JoshuaEstes
90+
/docs/*/filesystem @JoshuaEstes
91+
92+
# form
93+
/src/SonsOfPHP/*/Form @JoshuaEstes
94+
/docs/*/form @JoshuaEstes
95+
96+
# http-client
97+
/src/SonsOfPHP/*/HttpClient @JoshuaEstes
98+
/docs/*/http-client @JoshuaEstes
99+
100+
# http-factory
101+
/src/SonsOfPHP/*/HttpFactory @JoshuaEstes
102+
/docs/*/http-factory @JoshuaEstes
103+
104+
# http-handler
105+
/src/SonsOfPHP/*/HttpHandler @JoshuaEstes
106+
/docs/*/http-handler @JoshuaEstes
107+
108+
# http-message
109+
/src/SonsOfPHP/*/HttpMessage @JoshuaEstes
110+
/docs/*/http-message @JoshuaEstes
111+
112+
# internationalization
113+
/src/SonsOfPHP/*/Internationalization @JoshuaEstes
114+
/docs/*/internationalization @JoshuaEstes
115+
116+
# json
117+
/src/SonsOfPHP/*/Json @JoshuaEstes
118+
/docs/*/json @JoshuaEstes
119+
120+
# link
121+
/src/SonsOfPHP/*/Link @JoshuaEstes
122+
/docs/*/link @JoshuaEstes
123+
124+
# lock
125+
/src/SonsOfPHP/*/Lock @JoshuaEstes
126+
/docs/*/lock @JoshuaEstes
127+
128+
# logger
129+
/src/SonsOfPHP/*/Logger @JoshuaEstes
130+
/src/SonsOfPHP/Bundle/LoggerBundle @JoshuaEstes
131+
/docs/*/logger @JoshuaEstes
132+
133+
# mailer
134+
/src/SonsOfPHP/*/Mailer @JoshuaEstes
135+
/src/SonsOfPHP/Bundle/MailerBundle @JoshuaEstes
136+
/docs/*/mailer @JoshuaEstes
137+
138+
# math
139+
/src/SonsOfPHP/*/Math @JoshuaEstes
140+
/docs/*/math @JoshuaEstes
141+
142+
# message-bus
143+
/src/SonsOfPHP/*/MessageBus @JoshuaEstes
144+
/docs/*/message-bus @JoshuaEstes
145+
146+
# mime
147+
/src/SonsOfPHP/*/Mime @JoshuaEstes
148+
/docs/*/mime @JoshuaEstes
149+
150+
# money
151+
/src/SonsOfPHP/*/Money @JoshuaEstes
152+
/src/SonsOfPHP/Bridge/Twig/Money @JoshuaEstes
153+
/src/SonsOfPHP/Bundle/MoneyBundle @JoshuaEstes
154+
/docs/*/money @JoshuaEstes
155+
156+
# navigation
157+
/src/SonsOfPHP/*/Navigation @JoshuaEstes
158+
/docs/*/navigation @JoshuaEstes
159+
160+
# pager
161+
/src/SonsOfPHP/*/Pager @JoshuaEstes
162+
/src/SonsOfPHP/Bridge/Doctrine/*/Pager @JoshuaEstes
163+
/src/SonsOfPHP/Bundle/PagerBundle @JoshuaEstes
164+
/docs/*/pager @JoshuaEstes
165+
166+
# pay
167+
/src/SonsOfPHP/*/Pay @JoshuaEstes
168+
/docs/*/pay @JoshuaEstes
169+
170+
# pdf
171+
/src/SonsOfPHP/*/Pdf @JoshuaEstes
172+
/docs/*/pdf @JoshuaEstes
173+
174+
# phar
175+
/src/SonsOfPHP/*/Phar @JoshuaEstes
176+
/docs/*/phar @JoshuaEstes
177+
178+
# phone-number
179+
/src/SonsOfPHP/*/PhoneNumber @JoshuaEstes
180+
/docs/*/phone-number @JoshuaEstes
181+
182+
# router
183+
/src/SonsOfPHP/*/Router @JoshuaEstes
184+
/docs/*/router @JoshuaEstes
185+
186+
# search
187+
/src/SonsOfPHP/*/Search @JoshuaEstes
188+
/docs/*/search @JoshuaEstes
189+
190+
# serializer
191+
/src/SonsOfPHP/*/Serializer @JoshuaEstes
192+
/docs/*/serializer @JoshuaEstes
193+
194+
# session
195+
/src/SonsOfPHP/*/Session @JoshuaEstes
196+
/docs/*/session @JoshuaEstes
197+
198+
# state-machine
199+
/src/SonsOfPHP/*/StateMachine @JoshuaEstes
200+
/src/SonsOfPHP/Bundle/StateMachineBundle @JoshuaEstes
201+
/docs/*/state-machine @JoshuaEstes
202+
203+
# stdlib
204+
/src/SonsOfPHP/*/Stdlib @JoshuaEstes
205+
/docs/*/stdlib @JoshuaEstes
206+
207+
# user-agent
208+
/src/SonsOfPHP/*/UserAgent @JoshuaEstes
209+
/docs/*/user-agent @JoshuaEstes
210+
211+
# validator
212+
/src/SonsOfPHP/*/Validator @JoshuaEstes
213+
/docs/*/validator @JoshuaEstes
8214

9-
# Each component/contract needs a Team
10-
/src/SonsOfPHP/**/Assert @JoshuaEstes
11-
/src/SonsOfPHP/**/Cache @JoshuaEstes
12-
/src/SonsOfPHP/**/Clock @JoshuaEstes
13-
/src/SonsOfPHP/**/Container @JoshuaEstes
14-
/src/SonsOfPHP/**/Cookie @JoshuaEstes
15-
/src/SonsOfPHP/**/Common @JoshuaEstes
16-
/src/SonsOfPHP/**/Cqrs @JoshuaEstes
17-
/src/SonsOfPHP/**/EventDispatcher @JoshuaEstes
18-
/src/SonsOfPHP/**/EventSourcing @JoshuaEstes
19-
/src/SonsOfPHP/**/FeatureToggle @JoshuaEstes
20-
/src/SonsOfPHP/**/Filesystem @JoshuaEstes
21-
/src/SonsOfPHP/**/HttpFactory @JoshuaEstes
22-
/src/SonsOfPHP/**/HttpHandler @JoshuaEstes
23-
/src/SonsOfPHP/**/HttpMessage @JoshuaEstes
24-
/src/SonsOfPHP/**/Json @JoshuaEstes
25-
/src/SonsOfPHP/**/Link @JoshuaEstes
26-
/src/SonsOfPHP/**/Logger @JoshuaEstes
27-
/src/SonsOfPHP/**/Mailer @JoshuaEstes
28-
/src/SonsOfPHP/**/Money @JoshuaEstes
29-
/src/SonsOfPHP/**/Pager @JoshuaEstes
30-
/src/SonsOfPHP/**/StateMachine @JoshuaEstes
31-
/src/SonsOfPHP/**/Version @JoshuaEstes
215+
# version
216+
/src/SonsOfPHP/*/Version @JoshuaEstes
217+
/docs/*/version @JoshuaEstes

Makefile

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# start: Executables
2-
COMPOSER = composer
3-
PHP = php
2+
DOCKER_COMPOSE = docker compose
3+
COMPOSER = composer
4+
PHP = php
45
# end: Executables
56

67
# start: Tools
@@ -83,7 +84,7 @@ clean: ## Remove all vendor folders, composer.lock files, and removes build arti
8384
rm -rf src/SonsOfPHP/Bundle/*/vendor/ src/SonsOfPHP/Bundle/*/composer.lock
8485
rm -rf src/SonsOfPHP/Component/*/vendor/ src/SonsOfPHP/Component/*/composer.lock
8586
rm -rf src/SonsOfPHP/Contract/*/vendor/ src/SonsOfPHP/Contract/*/composer.lock
86-
rm -rf src/tools/*/vendor/ src/tools/*/composer.lock
87+
@#rm -rf src/tools/*/vendor/ src/tools/*/composer.lock
8788

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

119+
##---- Docker -------------------------------------------------------------------------
120+
.PHONY: docker-up
121+
docker-up: ## Start containers
122+
@$(DOCKER_COMPOSE) up --detach --remove-orphans
123+
124+
.PHONY: docker-down
125+
docker-down: ## Shutdown containers
126+
@$(DOCKER_COMPOSE) down --remove-orphans
127+
128+
.PHONY: docker-logs
129+
docker-logs: ## Show live logs
130+
@$(DOCKER_COMPOSE) logs --tail=0 --follow
131+
118132
##---- Code Quality -------------------------------------------------------------------
119133
.PHONY: lint
120134
lint: ## Lint PHP files

compose.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
####
2+
# Various Services used for integration testing
3+
####
4+
services:
5+
aws:
6+
image: localstack/localstack
7+
ports:
8+
- 4566:4566
9+
memcached:
10+
image: memcached
11+
ports:
12+
- 11211:11211
13+
redis:
14+
image: redis
15+
ports:
16+
- 6379:6379

docs/README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,53 @@ Please submit [Pull Requests](https://github.com/SonsOfPHP/sonsofphp/pulls) to t
3434
### Getting Help
3535

3636
Please visit the [Sons of PHP Organization Discussions](https://github.com/orgs/SonsOfPHP/discussions) section to ask questions and get more help.
37+
38+
# About Sons of PHP
39+
40+
Sons of PHP is a collection of various PHP projects that are split into
41+
"Contracts" and "Components". After that, functionality is extended by using
42+
"Bridges". Beyond that are plugins, bundles, and packages that are specifically
43+
for various frameworks.
44+
45+
The main focus of Sons of PHP is small re-usable components.
46+
47+
## Contracts
48+
49+
Everything starts with contracts. The contracts are NOT meant to replace PSR
50+
standards. Contracts are where all the interfaces are stored. There is no
51+
executable code here. Contracts are a way to provide other developers the
52+
ability to create components using a standard interface.
53+
54+
Contracts may also extend PSR standards as well as core PHP interfaces.
55+
56+
Contracts are also meant to be standalone. They do not require any other
57+
contracts other than PSRs.
58+
59+
## Components
60+
61+
All components will use the contracts to implement the code. These are the main
62+
packages that you will use in your projects.
63+
64+
Components are also meant to be standalone. Generally, there will be no
65+
additional requirements. Some components may require other additional Sons of
66+
PHP components, but for the most part, additional functionality is added by
67+
Bridges.
68+
69+
## Bridges
70+
71+
A bridge will connect a Sons of PHP component to another library. For example,
72+
the Pager component has additional packages that use Doctrine. The Filesystem
73+
component also has an AWS S3 bridge that allows you to use AWS S3 buckets to
74+
store files.
75+
76+
## Bundles, Plugins, etc.
77+
78+
Some frameworks out there (Symfony, Laravel, etc.) allow developers to install
79+
bundles, plugins, etc. Sons of PHP has a few of these and the leverage the
80+
various components and bridges.
81+
82+
## Additional Standalone Projects
83+
84+
Sons of PHP also has standalone projects such as Bard. These projects are
85+
include many different Sons of PHP components and bridges, but also include
86+
other libraries.

0 commit comments

Comments
 (0)