00f24a5c12
* Adopt PSR-2 coding style The Laravel framework adopts the PSR-2 coding style in version 5.1. Laravel apps *should* adopt this coding style as well. Read the [PSR-2 coding style guide][1] for more details and check out [PHPCS][2] to use as a code formatting tool. [1]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md [2]: https://github.com/squizlabs/PHP_CodeSniffer * Adopt PHP short array syntax Laravel 5 adopted the short array syntax which became available in PHP 5.4. * Remove SelfHandling from Jobs Jobs are self handling by default in Laravel 5.2. * Add new exceptions to `$dontReport` property * Shift core files * Shift Middleware Laravel 5.2 adjusts the `Guard` object used within middleware. In addition, new `can` and `throttles` middleware were added. * Shift Input to Request facade Laravel 5.2 no longer registers the `Input` facade by default. Laravel now prefers using the `Request` facade or the `$request` object within *Controllers* instead. Review the [HTTP Requests][1] documentation for more details. [1]: https://laravel.com/docs/5.2/requests * Shift configuration Laravel 5.2 introduces the `env` app configuration option and removes the `pretend` mail configuration option. In addition, a few of the default `providers` and `aliases` bindings were removed. * Shift Laravel dependencies * Shift cleanup * Updated composer.lock * Updated Middleware to 5.2 * Config update for Laravel 5.2 * [Laravel 5.2] Updated validation strings * Updated auth config * Updated to use middleware groups * Added laravel 5.2 sessions migration |
||
---|---|---|
app | ||
bootstrap | ||
config | ||
database | ||
documentation | ||
public | ||
resources | ||
storage | ||
tests | ||
tools | ||
vagrant | ||
.arcconfig | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
artisan | ||
composer.json | ||
composer.lock | ||
gulpfile.js | ||
LICENSE | ||
package.json | ||
phpspec.yml | ||
phpunit.xml | ||
README.md | ||
server.php | ||
Vagrantfile | ||
webpack.base.config.js | ||
webpack.dev.config.js | ||
webpack.production.config.js |
The community for pony fan music.
For artists, Pony.fm features unlimited uploads and downloads, automatic transcoding to a number of audio formats, and synchronized tags in all downloads.
For listeners, Pony.fm offers unlimited streaming and downloading, user-generated playlists, favourite lists, and a way of discovering new music with pony-based taxonomies.
Contributing
If you've run across a bug or have a feature request, open an issue for it.
For general questions and discussions about the site, stop by at the Pony.fm forum.
For quick fixes, go ahead and submit a pull request!
For larger features, it's best to open an issue before sinking a ton of work into building them, to coordinate with Pony.fm's maintainers.
Developer documentation is available in the documentation
directory.
Protip: Looking for a place to jump in and start coding? Try a quickwin issue - these are smaller in scope and easier to tackle if you're unfamiliar with the codebase!
Starting a dev environment
To begin development, do the following:
-
Install Vagrant and VirtualBox if you don't have them already.
-
Install the
vagrant-hostmanager
plugin:vagrant plugin install vagrant-hostmanager
-
Install the
vagrant-bindfs
plugin:vagrant plugin install vagrant-bindfs
-
Run
vagrant up
from the folder in which you cloned the repository -
Run
vagrant ssh
,cd /vagrant
, andphp artisan poni:setup
. -
Follow the instructions in the "Asset pipeline" section below to set that up.
Once everything is up and running, you'll be able to access the site at http://ponyfm-dev.poni/. You can access the MySQL database by logging into ponyfm-dev.poni:3306 with the username homestead and the password secret. Pony.fm's database is named homestead.
Asset pipeline
Pony.fm uses gulp to mange its asset pipeline.
Important: Run npm
and gulp
from your host machine and not within the VM. You must first have it installed globally:
npm install -g gulp
And then install all of the required local packages by invoking:
npm install
Finally, to compile and serve the assets in real time, run the following (and leave it running while you develop):
gulp watch
Configuring the servers
Pony.fm uses nginx, php-fpm, redis, and MySQL. You can modify the configuration of these services by locating the appropriate config file in the vagrant
folder. Once modified, you must reload the configuration by running the appropriate shell script (reload-config.sh
) or bat files (reload-config.bat
and reload-config.vmware.bat
). These scripts simply tell Vagrant to run copy-and-restart-config.sh
on the VM.
If you need to change any other configuration file on the VM - copy the entire file over into the vagrant folder, make your changes, and update the copy-and-restart-config.sh
script to copy the modified config back into the proper folder. All potential configuration requirements should be represented in the vagrant
folder and never only on the VM itself as changes will not be preserved.