Modern project manager for software development.
To start to use this project, we recommend using a Vagrant virtual machine located in the root directory that provides a completely functional environment for running Kreta. This Vagrant that is imported as submodule is maintained by benatespina in this repository so, we are pretty sure that you won`t any problems to use it; however, if you have any kind of question or doubt, do not hesitate to contact us.
To make it work, first of all you need to install Vagrant on your system, which in turn requires RubyGems and VirtualBox.
If you are on Windows, we recommend RubyInstaller to install Ruby and any ssh client as PuTTY for log into your Vagrant box.
This box has some dependencies so you must install vagrant-hostsupdater plugin for Vagrant, which adds an entry to your /etc/hosts
file on the host system and vagrant-vbguest which automatically installs the host's VirtualBox Guest Additions on the guest system.
$ vagrant plugin install vagrant-hostsupdater
$ vagrant plugin install vagrant-vbguest
The recommended way to clone this project is using the following command in order to add git submodules too:
$ git clone --recursive https://github.com/kreta-io/kreta.git kreta
Then, inside /vagrant
directory you have to copy the parameters.yml.dist
in the same directory to parameters.yml
, modifying the values with your favorite preferences. This is what we recommend:
#### REQUIRED ####
vm:
host_name: kreta
domain: localhost
host_path: /var/www
public_dir: /web
ip: 192.168.10.42
port: 8080
synced_folder: nfs
box: http://files.vagrantup.com/precise64.box
cpu: 1
memory: 512
#### OPTIONAL ####
nginx: ~
php:
version: 5.6
timezone: Europe/Madrid
xdebug:
version: 2.2.5
max_nesting_level: 256
ide_key: PHPSTORM
remote:
host: localhost
port: 9000
mysql:
version: 5.6
root_password: root
user: user
password: 123
database: kreta
nodejs:
version: 0.12.2
packages:
- gulp
- bower
ruby:
version: 2.1
gems:
- sass
- scss-lint
In the next step, you have to build the Vagrant machine and then, you have to connect via ssh to the VM with the following commands:
$ cd /vagrant
$ vagrant up
$ vagrant ssh
NOTE: sometimes when you type
vagrant up
of provisioned box, the/dev/shm/symfony/cache
and/dev/shm/symfony/logs
folders are disappeared; to solve this problem you have to executesh scripts/clear_cache.sh
Once, you are inside the Vagrant box you need to download Kreta's dependencies using Composer.
$ composer install
Furthermore, you need to download front-end development dependencies using NPM and Bower.
$ npm install
$ bower install
After that, you have to load everything related to database (create database if it is not exist, create schema and load some fixtures). The fastest way is executing the following command.
$ sh scripts/update_doctrine_dev.sh
Finally, you have to dump the assets files using Gulp:
$ gulp
And that's all! Now, if you access http://kreta.localhost
, you will see your site up and running.
This project is completely tested by full-stack BDD methodology.
For testing PHPSpec and Behat are used.
To run PHPSpec type the following
$ bin/phpspec run -fpretty
To run Behat tests run the following
$ sh scripts/pre_behat.sh
$ bin/behat
This projects follows PHP coding standards, so pull requests must pass PHP Code Sniffer and PHP Mess Detector checks. In the root directory of this project you have the custom rulesets (ruleset.xml for PHPCS and phpmd.xml for PHPMD).
There is also a policy for contributing to this project. Pull requests must be explained step by step to make the review process easy in order to accept and merge them. New methods or code improvements must come paired with PHPSpec tests.
If you would like to contribute it is a good point to follow Symfony contribution standards, so please read the Contributing Code in the project documentation. If you are submitting a pull request, please follow the guidelines in the Submitting a Patch section and use the Pull Request Template.
If you have any doubt or maybe you want to share some opinion, you can use our Gitter chat.
Kreta is created by:
@benatespina - benatespina@gmail.com
@gorkalaucirica - gorka.lauzirika@gmail.com