https://github.com/joequery/composerpsr4example
A basic example of PSR-4 Autoloading with Composer
https://github.com/joequery/composerpsr4example
Last synced: about 1 year ago
JSON representation
A basic example of PSR-4 Autoloading with Composer
- Host: GitHub
- URL: https://github.com/joequery/composerpsr4example
- Owner: joequery
- Created: 2015-10-27T05:57:25.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-10-27T06:08:21.000Z (over 10 years ago)
- Last Synced: 2025-03-27T07:21:17.619Z (about 1 year ago)
- Language: PHP
- Size: 352 KB
- Stars: 11
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Composer PSR-4 Example
======================
When attempting to learn how to use namespaces in PHP combined with Composer's
PSR-4 autoloading spec, I couldn't find a solid working example. I understood
the theory of autoloading, I understood why Namespaces were good - I just wanted
a working template so I could start coding.
Well, I couldn't find one, so I'm making one.
Usage
-----
Install the dependencies (currently only phpunit)
$ php composer.phar install
Run the unit test to verify everything works correctly
~$ ./vendor/bin/phpunit tests/
You should see the following output
PHPUnit 4.8.16 by Sebastian Bergmann and contributors.
.
Time: 41 ms, Memory: 3.75Mb
OK (1 test, 1 assertion)
How to use namespaces with Composer
-----------------------------------
Suppose you want to create a namespace named `MyNameSpace`
1. Map `MyNameSpace` to a base directory via the composer.json file
2. Within the base directory for the namespace, create a php file named `MyClass.php`
3. Inside `MyClass.php`, declare the namespace `MyNameSpace`
4. Inside `MyClass.php`, ensure the class `MyClass` has been defined, and that
it matches the php file name exactly
5. Files that wish to use `MyClass` can now access it via `use
MyNameSpace\MyClass`.
Adding/editing namespaces
-------------------------
Any time you update composer.json with new namespace information, you must run
an update.
$ php composer.phar update