PHP
Need help with codecasts?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
codecasts

Description

CODECASTS's source code

198 Stars 48 Forks MIT License 216 Commits 15 Opened issues

Services available

Need anything else?

CODECASTS

Codacy Badge Latest Stable Version License composer.lock GitHub issues Docker Hub Image

Application's GIT Repository. This document should be the ultimate guide on running and specs about the application source code.

Build status

| Branch | Environment | URL | Status | Test Coverage | Code Style | |---------------|------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------| |

master
|
production
| https://codecasts.com.br | Build Status | coverage | StyleCI | |
develop
|
staging
| https://staging.codecasts.com.br | Build Status | coverage | StyleCI |

Index

Development

For using the docker version (recommended) of the environment, you first need to stop local services like MySQL, Redis, Elasticsearch and webservers running on port 80.

Requirements

  • Docker >= 1.10.3.
  • docker-compose, if not already bundled in your docker install.
  • A virtual host named codecasts.app pointing to 127.0.0.1, this step is needed since the social login callbacks are using this URL.

Operating the docker environment

Starting services

  • Option 1: Keeping the output visible on the terminal

    php
    docker-compose up
    
  • Option 2 : Sending the output of the services to background

    php
    docker-compose up -d
    

Stopping services

  • Option 1: When the output is visible (started with option 1), just hit

    control + c
    to stop it.

  • Option 2: When the services are on background or failed to stop with

    control + c
    , you can stop them with the following command:

    php
    docker-compose down
    

Running internal commands

When commands like artisan are needed, those commands would need to run inside the docker containers, to do so, use the following sintax:

docker-compose run {service-name} {command-you-want-to-run}

For example. to run migrations, you can do:

docker-compose run app php artisan migrate

Another example, starting a terminal inside the MySQL service

docker-compose run mysql /bin/bash

List of Services

The service names can be located inside the

docker-compose.yml
file, right now, the following are enabled:

| Service | Description | |---------------|---------------------------------------------------------------| |

cache
| Runs a Redis 3.2 Instance for Cache and queues | |
mysql
| Runs a MySQL 5.7 Instance for Database | |
app
| PHP and Caddy Instance that runs the apllication | |
queue
| A PHP-CLI container, running php artisan queue:listen command | |
elastic
| Elasticsearch instance for search indexing |

Coding Guide Lines

Style

PSR-1 & PSR-2 should be enforced, a copy of php-cd-fixer is distributed along with the PHP Docker image, so the following command can automatically format the code before commiting:

docker-compose run app php-cs-fixer --diff --fixers=-psr1,-psr2 fix app

As a alternative, you can alias that command as

psr2
or other name:

# Bash and ZSH
alias psr2="docker-compose run app php-cs-fixer --diff --fixers=-psr1,-psr2 fix"

Fish shell

alias psr2 "docker-compose run app php-cs-fixer --diff --fixers=-psr1,-psr2 fix"

Unit Testing

Following the same structure of existing tests, the main rule it keep tests under the same namespace as the class being tested, in order to avoid useless imports and keep code cleaner

Code coverage as HTML is already ignored on git when generated on the

coverage
directory, to run tests with coverage reports, use
php vendor/bin/phpunit --coverage-html=coverage

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.