Basic library standard
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.
Abstract
World is inherently more complex than we thought. Someone can't create a package without following minimal rules. Neither update the package without this rules. So I've created this small standard for my own libraries in order to maintain the good tidy. This specification aims to establish a set of rules and guidelines to ensure consistency and quality in the development and maintenance of software packages and libraries. We recognize that the world of software development is inherently complex, and maintaining a standard of quality is essential. This specification is based on the principle that all packages and libraries created under our purview must maintain a high level of quality and adhere to best practices.
This specification addresses issues related to package naming and file organization. We provide specific rules to ensure that package names and namespaces are consistent.
Basic documentation
My own logic implies that all my development model MUST follow PSR-12 to keep clean code. User MAY use PHPCS to keep following PSR-12 recommendations.
Library naming standard
The name of the package MUST be `alrik11es/package`
The package name MUST use kebab-case as defined in Special case styles (Wikipedia) for example alrik11es/my-lib
Namespace name in libraries MUST start with \Alr for example \Alr\Mylib\Core
Folders distribution
Source code SHOULD be in a folder called /src but can be defined in composer.json
Tests folder MUST be called /tests
Tests folder MAY contain subfolders for integration, unit and functional tests