2017 © Pedro Peláez
 

symfony-bundle eveapi-fetcher-bundle

Provides automatic EVE Online Api fetching to your Symfony2 project.

image

tarioch/eveapi-fetcher-bundle

Provides automatic EVE Online Api fetching to your Symfony2 project.

  • Monday, January 18, 2016
  • by tarioch
  • Repository
  • 5 Watchers
  • 3 Stars
  • 186 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 5 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

EVE Api Fetcher Bundle

Latest Stable Version Build Status Scrutinizer Quality Score SensioLabsInsight, (*1)

Copyright (C) 2013 - 2015 by Patrick Ruckstuhl All rights reserved., (*2)

Symfony bundle for automatic fetching of the EVE Online API, heavily inspired by Yapeal and makes use of PhealNG, (*3)

LICENSE

EVE Api Fetcher Bundle is licensed under a MIT style license, see LICENSE.txt for further information, (*4)

Dependencies

  • Gearman Server + PHP Module: http://gearman.org/
  • Symfony http://symfony.com
  • Optional: Supervisord http://supervisord.org

INSTALLATION

First you need to add tarioch/eveapi-fetcher-bundle to composer.json:, (*5)

{
   "require": {
        "tarioch/eveapi-fetcher-bundle": "dev-master"
    }
}

Bundles

You have to add the following Bundles to your AppKernel.php:, (*6)

// app/AppKernel.php
//...
class AppKernel extends Kernel
{
    //...
    public function registerBundles()
    {
        $bundles = array(
            ...
            new JMS\DiExtraBundle\JMSDiExtraBundle($this),
            new JMS\AopBundle\JMSAopBundle(),
            new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
            new Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle(),
            new Mmoreram\GearmanBundle\GearmanBundle(),
            new Tarioch\PhealBundle\TariochPhealBundle(),
            new Tarioch\EveapiFetcherBundle\TariochEveapiFetcherBundle(),
        );
        //...

        return $bundles;
    }
    //...
}

Configuration

You have to add the following things to your config, (*7)

  • Annotation parsing
  • Entity manager
  • Doctrine migrations
  • Gearman
// app/config/config.yml
// ...
jms_di_extra:
    locations:
        all_bundles: false
        bundles: [TariochPhealBundle, TariochEveapiFetcherBundle]

doctrine:
    dbal:
        connections:
                eveapi:
                        driver:   "%database_driver%"
                        host:     "%database_host%"
                        port:     "%database_port%"
                        dbname:   "%database_eveapi_name%"
                        user:     "%database_user%"
                        password: "%database_password%"
                        charset:  UTF8
                        mapping_types:
                                enum: string

    orm:
        entity_managers:
                eveapi:
                        connection: eveapi
                        mappings:
                                TariochEveapiFetcherBundle: ~

doctrine_migrations:
    # workaround, see http://stackoverflow.com/questions/17066670/symfony2-change-migration-directory
    dir_name: '%kernel.root_dir%/../vendor/tarioch/eveapi-fetcher-bundle/Tarioch/EveapiFetcherBundle/DoctrineMigrations'

doctrine_cache:
    providers:
        gearman_cache:
            type: file_system
            namespace: doctrine_cache.ns.gearman

gearman:
    bundles:
        TariochEveapiFetcherBundle:
            name: TariochEveapiFetcherBundle
            active: true
            include:
                - Component/Worker
    defaults:
        method: doNormal
        iterations: 50
        callbacks: false
        job_prefix: null
        generate_unique_key: true
        workers_name_prepend_namespace: false

    servers:
        localhost:
            host: 127.0.0.1
            port: 4730

tarioch_pheal:
    user_agent: yourname@example.tld

Database

For getting the correct database schema, run, (*8)

php app/console doctrine:migrations:migrate --em=eveapi

Running

The best way to run this is to have a minutely cron job that schedules missing api calls and use supervisord for actually running the workers., (*9)

Cronjob

* * * * * su www-data -c '/usr/bin/php /path/to/app/console eve:api:schedule --env=prod'

Supervisord

http://supervisord.org, (*10)

[program:evetool]
process_name=evetool%(process_num)s
command=/usr/bin/php /path/to/app/console gearman:worker:execute TariochEveapiFetcherEveWorker --env=prod --no-interaction
numprocs=10
autostart=true
autorestart=true
user=www-data

Getting started

Simply insert a key into the table apiKey and all available and implemented api data will be fetched., (*11)

Help

Feel free to open an issue if you have an issues or questions., (*12)

The Versions