Welcome to PHP Sceleto
A PHP directory structure for your libraries.
PHP Sceleto is a directory structure template designed for creating PHP libraries. It provides a well-organized skeleton that I use for my PHP library projects and have decided to share with the community. This template is intended to streamline the development of PHP libraries, saving you time on initial setup and configuration.
Features
- Organized directory structure for your PHP library:
- Includes common project files like
.editorconfig
,.gitignore
, and.htaccess
. - Comes with a sample
composer.json
for easy Composer integration. - Includes a sample PHPUnit configuration file
phpunit.xml.dist
. - License and contributing guidelines for open-source projects.
Directory structure
your-php-library/
│
├──┬ src/
│ ├──┬ [SomeClass].php
│ │ ├ [AnotherClass].php
│ │ ├ ...
│ │
│ └──┬ tests/
│ ├─── [SomeClass]Test.php
│ ├─── [AnotherClass]Test.php
│ ├─── ...
│
├─── logs/
├─── docs/
├─── vendor/
├─── .editorconfig
├─── .gitignore
├─── .htaccess
├─── composer.json
├─── composer.lock
├─── phpunit.xml.dist
├─── LICENSE
├─── CONTRIBUTING.md
└─── README.md
Files and Folders
Files and folders overview.
File/Folder | Description |
---|---|
src/ | Source code of the application |
src/SomeClass.php | Example PHP class file (SomeClass) |
src/AnotherClass.php | Example PHP class file (AnotherClass) |
src/tests/ | Tests directory |
src/tests/SomeClassTest.php | PHPUnit test case for SomeClass (Example class) |
src/tests/AnotherClassTest.php | PHPUnit test case for AnotherClass (Example class) |
logs/ | Log files (e.g., code coverage report) |
docs/ | Documentation files (e.g., PHPDoc) |
vendor/ | Composer vendor directory contains your dependencies |
.editorconfig | IDE coding style settings |
.gitignore | Files and directories that Git should ignore |
.htaccess | Hypertext access file for Apache configuration |
composer.json | Composer dependencies |
composer.lock | Composer lock file |
phpunit.xml.dist | PHPUnit configuration file |
LICENSE | License document |
CONTRIBUTING.md | Contributing guidelines |
README.md | This document |
Getting Started
Follow these steps to use PHP Sceleto as a starting point for your PHP library:
Step 1 - Clone this repository to your local machine:
Replace your-php-library
with your desired name
git clone https://github.com/SandroMiguel/php-sceleto.git your-php-library
Step 2 - Navigate to the cloned directory:
cd your-php-library
.git
directory to start a new Git repository for your project:
Step 3 - Remove the rm -rf .git
Step 4 - Install the project dependencies using Composer:
composer install
Now, you have a clean slate to begin developing your PHP library independently. You can add your own code, configuration, and documentation within the provided directory structure.
Step 5 - Bonus: Continue Your Project Setup
If you wish to further enhance your project and follow best practices, consider continuing your project setup with Some Awesome Project. Some Awesome Project provides a set of guidelines and additional configurations that can make your project development even more efficient.
Composer commands
You can use Composer commands to streamline various development tasks. Here are the available commands and how to run them:
Check for Outdated Dependencies
To check for outdated Composer dependencies that are defined directly in your project, run:
composer outdated:direct
Run PHP CodeSniffer
To run PHP CodeSniffer on the source code in the src/php directory, use the following command:
composer phpcs
Run PHP CodeSniffer on a Specific File
For running PHP CodeSniffer on a specific file, use the following command, replacing [file]
with the path to your target file:
composer phpcs:file [file]
Analyze Code Quality and Architecture
To analyze code quality and architecture with PHP Insights, run:
composer phpinsights
Generate PHP Metrics Report
Generate a PHP Metrics report and display the Node.js version with:
composer phpmetrics
Run PHPStan Analysis
For PHPStan analysis with level 7 on the source code in the src/php
directory, use:
composer phpstan
Run Psalm Static Analysis
To run Psalm static analysis, simply use:
composer psalm
Tail Application Logs
To tail the application log located at ./storage/log/app.log
, use:
composer logs
Run PHPUnit Tests
For running PHPUnit tests, execute:
composer test
Run PHPUnit Tests with Coverage Report
To run PHPUnit tests and generate a coverage report in the log/report
directory, use:
composer test:coverage
Credits
- EditorConfig: IDE coding style settings.
- PHPUnit: Testing framework for PHP.
- PHP CodeSniffer: PHP coding standards checker and fixer.
- PHP Insights: Code quality and architecture analysis tool.
- PHP Metrics: PHP metrics generator.
- PHPStan: PHP static analysis tool.
- Psalm: Static analysis tool for PHP.
- Composer: Dependency management for PHP.
- Logo skeleton - made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
Contributing
Want to contribute? All contributions are welcome. Read the contributing guide.
Questions
If you have questions tweet me at @sandro_m_m or open an issue.
License
This project is licensed under the MIT License - see the LICENSE file for details
**~ sharing is caring ~**