PHP Mentoring App
Requirements
You should have Composer installed and available. If you need to install composer, go to their Getting Started docs. If you will be using Vagrant for local development, you'll need to have it installed as well.
Setup
Using Vagrant
-
Clone this repo.
-
Go into the folder, and run
vagrant upto start the VM. -
Add the following entry to your hosts file:
192.168.56.101 www.mentoring.dev mentoring.dev
-
Run
vagrant sshto go into the VM. -
Change directory to
/var/wwwand runcomposer installIf you get an error like the following:
Could not fetch https://api.github.com/repos/vlucas/phpdotenv/zipball/732d2adb7d916c9593b9d58c3b0d9ebefead07aa, please create a GitHub OAuth token to go over the API rate limit Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+packer-virtualbox-iso-1422588891+2015-05-22+0002 to retrieve a token. It will be stored in "/home/vagrant/.composer/auth.json" for future use by Composer.You will need to navigate to the URL in a browser, authenticate with GitHub, and generate the access token.
-
From the same directory, run
vendor/bin/phinx initto generate aphinx.ymlfile. -
Edit
/var/www/phinx.yml:In the
pathssection, set themigrationsvalue to:migrations: %%PHINX_CONFIG_DIR%%/data/migrationsIn the
developmentsection, set the following MySQL credentials:name: scotchbox user: root pass: root -
Run
vendor/bin/phinx migrateto run the database migrations. -
Copy
.env.exampleto.env -
Create a new Github Application at https://github.com/settings/applications/new
- Set the Homepage and Authorization callback URL to http://mentoring.dev
-
Update your
.envfile and set theGITHUB_API_KEYandGITHUB_API_SECRETto the Client ID and Client Secret for your app. -
Visit http://mentoring.dev in your browser!
Running Without Vagrant
If you want to help out and cannot download or run Vagrant, you can run the application locally using PHP's built in dev server. You will need the following PHP extensions:
- php-curl
- php-intl
Steps:
-
Clone this repo.
-
Add the following entry to your hosts file. On unix-like systems, its usually found at
/etc/hosts:127.0.0.1 www.mentoring.dev mentoring.dev
-
Change directory to the directory where you cloned the project in step 1 and run
composer install -
Copy
.env.exampleto.env -
From the same directory, run
vendor/bin/phinx initto generate aphinx.ymlfile. -
Edit
./phinx.yml's development section (lines 19-21) with the following values for MySQL.name: mentoring user: mentoring pass: vagrantTo use sqlite, in
./phinx.ymlchange change the adapter tosqlite(line 17) the name (line 19) todata/mentoring.db. In.envchangeDB_DRIVERtopdo_sqliteon line 1. -
Edit
./phinx.yml'spaths.migrationsvalue (line 2) to:%%PHINX_CONFIG_DIR%%/data/migrations -
Run
vendor/bin/phinx migrateto run the database migrations. -
Create a new Github Application at https://github.com/settings/applications/new
- Set the Homepage and Authorization callback URL to http://mentoring.dev:8080
-
Update your
.envfile and set theGITHUB_API_KEYandGITHUB_API_SECRETto the Client ID and Client Secret for your app.
11 To run using PHP's built-in server, navigate to the root of the project and run:php -S mentoring.dev:8080 -t public public/index.php
-
Visit http://mentoring.dev:8080 in your browser!
Email in Development
Before you start the VM, you need to change your .env file. To use mailcatcher, you'll want the following config:
MAIL_HOST=0.0.0.0
MAIL_PORT=1025
Mailcatcher is installed in the VM, but to use it you need to ssh into the VM and execute the following command to start the mail server:
mailcatcher --ip=0.0.0.0
You can then view all emails being sent out by the app in your host machine's browser at the following address:
http://192.168.56.101:1080