Skip to content
This repository was archived by the owner on Oct 2, 2020. It is now read-only.

Commit 75515ff

Browse files
authored
Update README.md
1 parent 317b135 commit 75515ff

File tree

1 file changed

+70
-19
lines changed

1 file changed

+70
-19
lines changed

README.md

+70-19
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
* [Object-oriented programming](#object-oriented-programming)
2828
* [Design patterns](#design-patterns)
2929
* [Best Practices](#best-practices)
30-
* [Architecture](#architecture)
31-
* [Domain Driven Design (DDD)](#domain-driven-design-ddd)
3230
* [Templating](#templating)
3331
* [View libraries (frontend)](#view-libraries-frontend)
3432
* [Database basics](#database-basics)
@@ -42,6 +40,7 @@
4240
* [Database tools](#database-tools)
4341
* [Standards](#standards)
4442
* [Errors and exception handling](#errors-and-exception-handling)
43+
* [Debugging](#debugging)
4544
* [Unit testing](#unit-testing)
4645
* [Documentation](#documentation)
4746
* [PHP Sessions](#php-sessions)
@@ -50,6 +49,8 @@
5049
* [Dependency injection](#dependency-injection)
5150
* [Version control](#version-control)
5251
* [Security](#security)
52+
* [Architecture](#architecture)
53+
* [Domain Driven Design (DDD)](#domain-driven-design-ddd)
5354
* [Continuous integration and Continuous Delivery](#continuous-integration-ci-and-continuous-delivery-cd)
5455
* [Community and News](#community--news)
5556

@@ -139,7 +140,6 @@ The [LAMP](https://en.wikipedia.org/wiki/LAMP_(software_bundle)) stack:
139140
## Tools
140141
* [XAMPP](https://www.apachefriends.org/index.html) (Apache, MariaDB, PHP)
141142
* [Composer](https://getcomposer.org/) (dependency management)
142-
* [Xdebug](https://xdebug.org/) (Debugger) | [Xdebug Setup](https://gist.github.com/odan/1abe76d373a9cbb15bed)
143143
* [WinSCP](https://winscp.net) (Free SFTP, SCP and FTP client)
144144
* [Putty](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) (A free SSH and telnet client)
145145
* [PoEdit](https://poedit.net/) (gettext translations editor)
@@ -231,39 +231,47 @@ Most frameworks in PHP follow some sort of MVC structure. The theory is simple:
231231

232232
## Best Practices
233233

234-
> "DRY ‐ Don't Repeat Yourself<br>
235-
> Every piece of knowledge must have a single, <br>
236-
> unambiguous, athoritative representation within a system."
234+
### KISS
235+
236+
> Simplicity is prerequisite for reliability.<br>
237+
> — Edsger W. Dijkstra
237238
238239
* [KISS - Keep it simple, stupid](https://en.wikipedia.org/wiki/KISS_principle)
239240
* [KISS principle](https://people.apache.org/~fhanik/kiss.html)
241+
242+
### YAGNI
243+
240244
* [YAGNI](http://deviq.com/yagni/)
241245
* [You Arent Gonna Need It](http://c2.com/xp/YouArentGonnaNeedIt.html)
242246
* [KISS and YAGNI](https://blog.codinghorror.com/kiss-and-yagni/)
243247
* [YAGNI, Cargo Cult and Overengineering](https://codeahoy.com/2017/08/19/yagni-cargo-cult-and-overengineering-the-planes-wont-land-just-because-you-built-a-runway-in-your-backyard/)
248+
249+
### DRY
250+
251+
> "DRY ‐ Don't Repeat Yourself<br>
252+
> Every piece of knowledge must have a single, <br>
253+
> unambiguous, athoritative representation within a system."
254+
244255
* [Don’t repeat yourself (DRY)](https://en.wikipedia.org/wiki/Don't_repeat_yourself)
245-
* [Return early, return often](https://softwareengineering.stackexchange.com/q/18454)
246-
* [Global Variables Are Bad](http://stackoverflow.com/a/10525602)
247-
* [Thin controllers and fat models](http://symfony.com/doc/current/best_practices/controllers.html)
256+
257+
### SOLID
258+
248259
* [SOLID](https://en.wikipedia.org/wiki/SOLID_(object-oriented_design))
249260
* [The First 5 Principles of Object Oriented Design](https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design)
250261
* [How to write SOLID code that doesn’t suck](https://medium.com/web-engineering-vox/how-to-write-solid-code-that-doesnt-suck-2a3416623d48#.61pr1ym4b)
262+
263+
### Other
264+
265+
* [Return early, return often](https://softwareengineering.stackexchange.com/q/18454)
266+
* [Global Variables Are Bad](http://stackoverflow.com/a/10525602)
267+
* [Thin controllers and fat models](http://symfony.com/doc/current/best_practices/controllers.html)
251268
* [PHP Dos and Don’ts aka Programmers I Don’t Like](https://blog.radwell.codes/2016/11/php-dos-donts-aka-programmers-dont-like/)
252269
* [Composition over inheritance](https://www.thoughtworks.com/pt/insights/blog/composition-vs-inheritance-how-choose)
253270
* [Clean Code PHP](https://github.com/jupeter/clean-code-php)
254271
* [Object Calisthenics](https://medium.com/web-engineering-vox/improving-code-quality-with-object-calisthenics-aa4ad67a61f1#.ggel1wt46)
255272

256-
## Architecture
257-
258-
* [The Clean Architecture](https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html)
259-
* [Creating services you won’t hate](https://www.brandonsavage.net/creating-services-you-wont-hate/)
260-
261-
## Domain Driven Design (DDD)
262-
263-
* [Domain-Driven Design: Tackling Complexity in the Heart of Software](https://www.amazon.de/gp/product/0321125215/ref=as_li_tl?ie=UTF8&tag=28031982-21&camp=1638&creative=6742&linkCode=as2&creativeASIN=0321125215&linkId=16ec2c3b5f11f8f3b4e152c4a25b22c3)
264-
* [Implementing Domain-Driven Design](https://www.amazon.de/gp/product/0321834577/ref=as_li_tl?ie=UTF8&tag=28031982-21&camp=1638&creative=6742&linkCode=as2&creativeASIN=0321834577&linkId=eb63c6ebb30257011280bf1eab89f1db)
265-
266273
## Database basics
274+
267275
* [Database](https://en.wikipedia.org/wiki/Database)
268276
* [Database model](https://en.wikipedia.org/wiki/Database_model)
269277
* **[The only proper PDO tutorial](https://phpdelusions.net/pdo)**
@@ -274,13 +282,15 @@ Most frameworks in PHP follow some sort of MVC structure. The theory is simple:
274282
* [Datenbank-Grundlagen Tutorial: Primärschlüssel](https://www.youtube.com/watch?v=Mpkg0RnkMkw) (german)
275283

276284
## Relational database management system (RDBMS)
285+
277286
* [MySQL](https://en.wikipedia.org/wiki/MySQL) | [MySQL website](http://dev.mysql.com/downloads/mysql/)
278287
* [MariaDB](https://en.wikipedia.org/wiki/MariaDB) | [MariaDB website](https://mariadb.org/)
279288
* [Microsoft SQL Server](https://en.wikipedia.org/wiki/Microsoft_SQL_Server)
280289
* [Oracle](https://en.wikipedia.org/wiki/Oracle_Database)
281290
* [SQLite](https://en.wikipedia.org/wiki/SQLite)
282291

283292
## Database books
293+
284294
* [High Performance MySQL: Optimization, Backups, and Replication](https://www.amazon.com/High-Performance-MySQL-Optimization-Replication/dp/1449314287/?tag=28031982-21)
285295

286296
## Database normalization
@@ -293,18 +303,24 @@ Most frameworks in PHP follow some sort of MVC structure. The theory is simple:
293303
* [MySQL - Normalisierung](http://www.peterkropff.de/site/mysql/normalisierung.htm) (german)
294304

295305
## Prepared Statements
306+
296307
* [Prepared statement](https://en.wikipedia.org/wiki/Prepared_statement)
297308
* [Prepared statements - Protection from SQL injections](https://phpdelusions.net/pdo#prepared)
298309
* [PHP Prepared Statements](http://www.w3schools.com/php/php_mysql_prepared_statements.asp)
299310

300311
## NoSQL
312+
301313
* [NoSQL](https://en.wikipedia.org/wiki/NoSQL)
314+
* [Redis](https://redis.io/) (In-memory data structure store, used as a database, cache and message broker)
315+
* [MongoDB](https://en.wikipedia.org/wiki/MongoDB) (Document-oriented database)
302316

303317
## Database libraries
318+
304319
* [Phinx - database migrations](https://phinx.org/)
305320
* [Illuminate (Laravel) Query Builder](https://github.com/illuminate/database)
306321

307322
## Database tools
323+
308324
* [SQLyog](https://github.com/webyog/sqlyog-community/wiki/Downloads)
309325
* [PHPMyAdmin MySQL Database Web Interface](https://www.phpmyadmin.net/)
310326
* [MySQL Workbench](http://www.mysql.com/products/workbench/)
@@ -324,13 +340,19 @@ Follow common PHP conventions for object-oriented code, and established industry
324340
* [Semantic Versioning 2.0.0](https://semver.org/)
325341

326342
## Errors and exception handling
343+
327344
* [Errors and Exceptions](https://www.phptherightway.com/#errors_and_exceptions)
328345
* [Error Handling PHP Best Practices](http://bestpractices.thecodingmachine.com/php/error_handling.html)
329346
* [Exceptions](http://php.net/manual/en/language.exceptions.php)
330347
* [Predefined Exceptions](http://php.net/manual/en/reserved.exceptions.php)
331348
* [SPL Exceptions](http://php.net/manual/en/spl.exceptions.php)
332349
* [Errors and error handling](http://php.net/manual/en/pdo.error-handling.php)
333350

351+
## Debugging
352+
353+
* [Xdebug](https://xdebug.org/) (Debugger)
354+
* [Installing Xdebug for XAMPP](https://gist.github.com/odan/1abe76d373a9cbb15bed)
355+
334356
## Unit testing
335357

336358
> “Software testers do not make software; they only make them better.” – Anonymous
@@ -360,26 +382,42 @@ Follow common PHP conventions for object-oriented code, and established industry
360382
* [Your First Set of Documentation](https://phpdoc.org/docs/latest/getting-started/your-first-set-of-documentation.html)
361383

362384
## PHP Sessions
385+
363386
* [PHP Sessions](http://www.w3schools.com/php/php_sessions.asp)
364387
* [Session Handling](https://secure.php.net/manual/en/book.session.php)
365388
* [Cookie](https://en.wikipedia.org/wiki/HTTP_cookie)
366389
* [Session Management](https://symfony.com/doc/current/components/http_foundation/sessions.html)
367390

368391
## Router and Dispatcher
392+
369393
* [FastRoute](https://github.com/nikic/FastRoute)
370394
* [Symfony: The Routing Component](https://symfony.com/doc/current/components/routing.html)
371395

372396
## Text translations
397+
373398
* [Internationalization and localization](https://en.wikipedia.org/wiki/Internationalization_and_localization) (i18n)
374399
* [Symfony: The Translation Component](https://symfony.com/doc/current/components/translation.html)
375400
* [PoEdit](https://poedit.net/) Gettext Translations Editor
376401

377402
## Dependency injection
403+
378404
* [What is Dependency Injection?](http://fabien.potencier.org/what-is-dependency-injection.html)
379405
* [The Clean Code Talks - Don't Look For Things!](https://www.youtube.com/watch?v=RlfLCWKxHJ0) (Video)
380406
* [Dependency Injection and Dependency Inversion](https://www.youtube.com/watch?v=Ojsn11XY0X8) (Video)
381407
* [PSR-11: Container interface](https://www.php-fig.org/psr/psr-11/)
382408

409+
## Regular Expresions
410+
411+
* todo
412+
413+
## RESTful API
414+
415+
* todo
416+
417+
## SOAP API
418+
419+
* todo
420+
383421
## Version control
384422
* [What is version control](https://www.atlassian.com/git/tutorials/what-is-version-control)
385423
* **[Github](https://github.com)**
@@ -389,6 +427,9 @@ Follow common PHP conventions for object-oriented code, and established industry
389427
* [How to contribute to an open source project on GitHub](http://blog.davidecoppola.com/2016/11/howto-contribute-to-open-source-project-on-github/)
390428

391429
## Security
430+
431+
> A good programmer looks both ways before crossing a one-way street.
432+
392433
* [Web security essentials](http://www.sohamkamani.com/blog/2017/01/16/web-security-essentials/)
393434
* [PHP Security Cheat Sheet](https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet)
394435
* [PHP The Right Way - Security](http://www.phptherightway.com/#security)
@@ -397,6 +438,16 @@ Follow common PHP conventions for object-oriented code, and established industry
397438
* [What ENT_* should I use for htmlspecialchars?](https://3v4l.org/PvRtm)
398439
* [The latest information about secure PHP software](https://paragonie.com/blog)
399440

441+
## Architecture
442+
443+
* [The Clean Architecture](https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html)
444+
* [Creating services you won’t hate](https://www.brandonsavage.net/creating-services-you-wont-hate/)
445+
446+
## Domain Driven Design (DDD)
447+
448+
* [Domain-Driven Design: Tackling Complexity in the Heart of Software](https://www.amazon.de/gp/product/0321125215/ref=as_li_tl?ie=UTF8&tag=28031982-21&camp=1638&creative=6742&linkCode=as2&creativeASIN=0321125215&linkId=16ec2c3b5f11f8f3b4e152c4a25b22c3)
449+
* [Implementing Domain-Driven Design](https://www.amazon.de/gp/product/0321834577/ref=as_li_tl?ie=UTF8&tag=28031982-21&camp=1638&creative=6742&linkCode=as2&creativeASIN=0321834577&linkId=eb63c6ebb30257011280bf1eab89f1db)
450+
400451
## Continuous integration (CI) and Continuous Delivery (CD)
401452
* [Continuous Delivery](https://www.amazon.de/gp/product/B003YMNVC0/ref=as_li_tl?ie=UTF8&camp=1638&creative=6742&creativeASIN=B003YMNVC0&linkCode=as2&tag=28031982-21)
402453
* [Continuously delivering PHP projects](https://www.youtube.com/watch?v=HOwPJg-F4h0)

0 commit comments

Comments
 (0)