I am trying to build a REST API using Slim PHP 2.0, Composer, and a couple third-party packages. I used Composer to install Slim by creating a composer.json file in the root of my application with the following:
{
"require": {
"slim/slim": "2.*"
}
}
After I ran composer install I have the following structure:
root/
vendor/
composer/
slim/
autoload.php
composer.json
composer.lock
index.php
I want to include the Valitron (https://packagist.org/packages/vlucas/valitron) library to do validation along with this Bcrypt (https://packagist.org/packages/openlss/func-bcrypt) library to hash passwords for users. So, I made the following additions to my composer.json file so the it looks like this:
{
"require": {
"slim/slim": "2.*",
"vlucas/valitron": "dev-master",
"openlss/func-bcrypt": "dev-master"
}
}
After I ran composer update I got the following directory structure.
root/
vendor/
composer/
openlss/
slim/
vlucas/
autoload.php
composer.json
composer.lock
index.php
From here, I am not sure how to set up the autoloading for my application. I sometimes see autoload classmap and other times see psr-0. On top of these third-party packages I am going to be creating my own models to use. One will be a base model that handles connecting to the database and then each table will have a model that I use to manipulate the said table with. So for interacting with the users table I will use my UserModel.php file below. My other question is how would I go about "using" the Valitron and BCrypt files within this one? Would I just do this:
<?php namespace Libraries;
use \Valitron;
use \BCrypt;
class UserModel extends BaseModel {
// I want to use the Valitron class here along with the crypt file
}
How would I go about setting up autoloader to accomplish this? Any help is greatly appreciated. I already dislike Composer a lot but since everyone is saying it's a must for PHP developers I am trying to force myself to learn it.