PHP(7)RESTful Framework - Lumen - Settings and Env
1. Install lumen
Install composer
http://coderexample.com/composer-easy-tutorial/
composer will downloading dependency library automatically, and it will create a single autoloader.php and autoload all the dependency into our project.
> curl -sS https://getcomposer.org/installer | php
This method will download the composer executive file. Actually I use that before, but we can move a little further, we can directly copy the executive file to our PATH directory.
> sudo mv composer.phar /usr/bin/composer
Verify installation
> composer --version
Composer version 1.0-dev (f1aa655e6113e0efa979b8b09d7951a762eaa04c) 2015-08-20 11:59:54
2. Create the Sample Project
There is a lot of great source from here https://packagist.org/
This command will create a sample REST PHP project for us.
> composer create-project laravel/lumen easyphprest
Go into that directory. This command will tell us a lot of useful commands.
> php artisan
Laravel Framework version Lumen (5.1.3) (Laravel Components 5.1.*)
Command to start the HTTP Service
> php artisan serve
Lumen development server started on http://localhost:8000/
Install and Configure MYSQL
After directly install dmz file on MAC, I start mysql as follow:
> sudo /usr/local/mysql/support-files/mysql.server start
Database configuration is in this place
>cat .env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=easyphprest
DB_USERNAME=easyphprest
DB_PASSWORD=easyphprest
Uncomments the configuration
>cat bootstrap/app.php
Dotenv::load(__DIR__.'/../');
$app->withFacades();
$app->withEloquent();
Create the Migration Database
> php artisan make:migration create_books_table
Created Migration: 2015_08_28_183001_create_books_table
This will create a file under database/migrations/
Something like flywayDB.
Run the command to start the migration table operation
> php artisan migrate
Error Message:
[PDOException]
could not find driver
Solution:
uncomment out the line in php.ini
extension=php_pdo_mysql.dll
The link of the source
http://ar2.php.net/distributions/php-5.6.10.tar.gz
http://ar2.php.net/distributions/php-5.6.11.tar.gz
Install pear http://pear.php.net/manual/en/installation.getting.php
> wget http://pear.php.net/go-pear.phar
> php go-pear.phar
Try to install pdo_mysql
> pear install pdo_mysql
> pecl install pdo_mysql
Exception:
configure: error: Cannot find MySQL header files under
ERROR: `/private/tmp/pear/install/PDO_MYSQL/configure' failed
Solution:
Manually install that
http://stackoverflow.com/questions/384809/pdo-mysql-driver-on-mac
> pecl download pdo_mysql
> tar zxvf PDO_MYSQL-1.0.2.tgz
> phpize
> ./configure --with-pdo-mysql=/usr/local/mysql
> make
Fail Exception:
./php_pdo_mysql_int.h:25:10: fatal error: 'mysql.h' file not found
#include <mysql.h>
easily copy all the mysql header files here
> cp /usr/local/mysql/include/*.h ./
> make
Maybe, I need to reinstall my PHP with this PDO MYSQL enable.
Reinstall PHP
http://sillycat.iteye.com/blog/2223621
Fetch the latest PHP
> wget http://ar2.php.net/distributions/php-5.6.11.tar.gz
Unzip and installation
> ./configure --prefix=/Users/carl/tool/php-5.6.11 --with-openssl --with-iconv-dir=/usr/lib --with-curl=/opt/local/include/curl --with-mysql --enable-fpm --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-mysqli --with-pdo-mysql --with-zlib
After installation, switch to this latest version of PHP. It works.
> php artisan migrate
Migration table created successfully.
Migrated: 2015_08_28_183001_create_books_table
The database table will show on the Squel Pro
References:
Slim Framework
http://www.slimframework.com/
laravel - Web Framework similar to symfony2
http://www.golaravel.com/
http://laravel-china.org/docs/4.2/introduction
http://www.golaravel.com/
lumen - RESTful framework mini version of laravel
http://lumen.laravel.com/
http://segmentfault.com/a/1190000002724037
http://lumen.laravel-china.org/
https://phphub.org/topics/701
http://lumen.laravel-china.org/docs
x-debug
https://wiki.eclipse.org/Debugging_using_XDebug
https://github.com/nordsoftware/lumen-rest
http://coderexample.com/restful-api-in-lumen-a-laravel-micro-framework/