Symfony bundle providing a Twitter reader for asynchronous reading + tests & CI experiments
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
src
tests
.appveyor.yml
.codeclimate.yml
.coveralls.yml
.gitignore
.scrutinizer.yml
.travis.yml
Doxyfile
LICENSE
README.md
behat.yml
composer.json
phpspec.yml
phpunit.xml.dist

README.md

AsyncTweetsBundle

A Symfony bundle providing a Twitter reader for asynchronous reading

Packagist Latest Stable Version Latest Unstable Version

Builds: Build status AppVeyor Circle CI

Code analysis: Scrutinizer Code Quality Scrutinizer Coveralls Code Climate Codacy StyleCI SensioLabsInsight

Other: Dependency Status

Links

Goal

The goal of this project is to create an online Twitter reader, built with Symfony. AsyncTweets retrieves and stores your timeline, allowing to read your Twitter timeline even if you're away from your Twitter client for several days.

This bundle is also used to test several CI (Continuous Integration) services.

Features

  • Retrieve tweets by using User's Twitter keys
  • Display the tweets with a pagination
  • Display images below tweets

Installation

Requirements:

  • Twitter keys

  • PHP >= 7.1

  • a database (must be supported by Doctrine2)

  • Symfony (3.4+) with Composer. If you want to install it:

     php composer.phar create-project symfony/framework-standard-edition YOUR_DIRECTORY "3.4.*" -vvv
    

Steps:

  1. Install this bundle with Composer: cd YOUR_DIRECTORY ; php composer.phar require alexislefebvre/async-tweets-bundle dev-master --prefer-dist -vvv

  2. Add the bundle in app/AppKernel.php:

    <?php
    
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new AlexisLefebvre\Bundle\AsyncTweetsBundle\AsyncTweetsBundle(),
        );
    }
    
  3. Enter your Twitter keys at the end of the app/config/parameters.yml file:

    twitter_consumer_key: null
    twitter_consumer_secret: null
    twitter_token: null
    twitter_token_secret: null
    
  4. Create the database and create the tables: php app/console doctrine:schema:update --force --env=prod

Usage:

  1. Launch this command to fetch tweets: php app/console statuses:hometimeline --table --env=prod, with the --table option the imported tweets will be shown

  2. Import the routes in your app/config/routing.yml:

    asynctweets_website:
        resource: "@AsyncTweetsBundle/Resources/config/routing.yml"
        prefix:   /asynctweets # Use only "/" if you want AsyncTweets at the root of the website
    
  3. Open the page with your browser .../YOUR_DIRECTORY/web/asynctweets/ or use the following command php app/console statuses:read --env=prod to see tweets

  4. Add php app/console statuses:hometimeline --env=prod in your crontab (e.g. every hour) to retrieve tweets automatically

Dependencies

Tests:

php vendor/bin/phpunit