PHP Classes

How to View the Most Starred PHP Github Projects Using the Package GitHub API: Present the most starred PHP projects in GitHub

Recommend this page to a friend!
  Info   Documentation   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2026-06-11 (14 days ago) RSS 2.0 feedNot yet rated by the usersTotal: Not yet counted Not yet ranked
Version License PHP version Categories
github-api 1.0MIT/X Consortium ...8Statistics, PHP 7, Applications
Description 

Author

This package presents the most starred projects in GitHub.

It provides an application that uses the Symfony framework to send requests to GitHub to fetch the most starred PHP projects.

The application shows the most starred projects in a dashboard and pages to show the details of each project, like the description, stars, creation date, last push date, and repository link.

Picture of Julio Vergara
  Performance   Level  
Name: Julio Vergara <contact>
Classes: 3 packages by
Country: United States United States
Innovation award
Innovation award
Nominee: 3x

Instructions

  • We added a link to your instructions file in the instructions section.

To increase the interest in your package, improve the Instructions section by using the Edit link on your package page to enter simplified package usage instructions to make your package more interesting to use by other developers.

Please read this document install and run the application to view most starred PHP projects in GitHub.

Documentation

Symfony GitHub PHP Projects Dashboard

A Symfony application that fetches, stores, and displays the most-starred public PHP projects from GitHub, presented in a modern dark terminal-inspired UI.

Features

  • Dashboard ? Browse the top PHP repositories sorted by star count
  • Detail View ? Click any project to see description, stars, creation date, last push date, and repository link
  • Pagination ? Navigate through projects 10 per page
  • Live Refresh ? Fetch fresh data from GitHub API with an animated loading indicator
  • Dark Terminal UI ? JetBrains Mono + DM Sans, amber accents, dot-grid background

Tech Stack

  • Symfony 7.4
  • PHP 8.3
  • MariaDB 11.5
  • Docker & Docker Compose
  • Hotwire Turbo (SPA-like navigation)
  • Stimulus (client-side loading state)
  • Pagerfanta (pagination)

Prerequisites

  • Docker Desktop (or Docker + Docker Compose)

Setup

1. Configure ports (optional)

By default, the web server runs on port 8080 and the database on port 8306. To override:

cp compose.override.yaml.dist compose.override.yaml

Edit compose.override.yaml to change ports.

2. Start Docker containers

docker compose up -d

3. Install Composer dependencies

docker compose exec web composer install

4. Run database migrations

docker compose exec web bin/console doctrine:migrations:migrate

5. Access the app

Open http://127.0.0.1:8080 in your browser.

Usage

Viewing Projects

The homepage displays the most-starred PHP projects. Each row shows the repository name and star count.

Pagination

Use Previous / Next or numbered page links to navigate. 10 projects per page.

Project Details

Click any project to open its detail page showing: - Description - Star count - Creation date - Last push date - Direct link to GitHub

Refreshing Data from GitHub

Click the Refresh from GitHub button to fetch the latest top PHP repositories from the GitHub API. The button shows a spinning indicator and "Fetching..." label while the request is in progress. The project list updates automatically when the sync completes.

> Note: The GitHub Search API allows 60 unauthenticated requests per hour. If you hit the rate limit, add a GITHUB_TOKEN to your .env.local file.

Database container

This project uses the MariaDB Docker image for the database, which should already be configured properly in the Symfony application in the .env file.

The official MariaDB container does not include the mysql command line client. If you want to connect to the database from your host machine, you will need a MySQL client installed locally. The root user account is configured to work without a password.

Host: 127.0.0.1 Port: 8306 (or the port you specified in composer.override.yaml) Username: root Database: app

For example, using the mysql command line client, you would connect with:

mysql -uroot -h127.0.0.1 -P8306 app

Database Connection

| Setting | Value | |----------|--------------------| | Host | 127.0.0.1 | | Port | 8306 | | User | root | | Password | (none) | | Database | app |

Connect from your host machine:

mysql -uroot -h127.0.0.1 -P8306 app

Common Commands

# Clear Symfony cache
docker compose exec web bin/console cache:clear

# Run PHPUnit tests
docker compose exec web vendor/bin/phpunit

# Open a shell inside the web container
docker compose exec web bash

# Run a single test
docker compose exec web vendor/bin/phpunit --filter TestClassName

Cleanup

# Stop containers
docker compose stop

# Stop and remove containers
docker compose down

# Stop, remove containers, and delete images and volumes
docker compose down --volumes --rmi all

Running PHPUnit Tests

To run all the tests:

docker compose exec web vendor/bin/phpunit

For a single test file:

docker compose exec web vendor/bin/phpunit tests/Controller/GithubPhpProjectControllerTest.php

For a single test method:

docker compose exec web vendor/bin/phpunit --filter testIndexPageIsSuccessful

  Files folder image Files (67)  
File Role Description
Files folder imageassets (3 files, 2 directories)
Files folder imagebin (2 files)
Files folder imageconfig (4 files, 2 directories)
Files folder imagedocker (2 files)
Files folder imagemigrations (2 files)
Files folder imagepublic (3 files)
Files folder imagesrc (1 file, 4 directories)
Files folder imagetemplates (3 files, 1 directory)
Files folder imagetests (1 file, 4 directories)
Accessible without login Plain text file .env Data Auxiliary data
Accessible without login Plain text file .env.test Data Auxiliary data
Accessible without login Plain text file AGENTS.md Data Auxiliary data
Accessible without login Plain text file compose.override.yaml.dist Data Auxiliary data
Accessible without login Plain text file compose.yaml Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file composer.lock Data Auxiliary data
Accessible without login Plain text file Dockerfile Data Auxiliary data
Accessible without login Plain text file importmap.php Aux. Configuration script
Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file symfony.lock Data Auxiliary data

  Files folder image Files (67)  /  assets  
File Role Description
Files folder imagecontrollers (3 files)
Files folder imagestyles (1 file)
  Accessible without login Plain text file app.js Data Auxiliary data
  Accessible without login Plain text file controllers.json Data Auxiliary data
  Accessible without login Plain text file stimulus_bootstrap.js Data Auxiliary data

  Files folder image Files (67)  /  assets  /  controllers  
File Role Description
  Accessible without login Plain text file csrf_protection_controller.js Data Auxiliary data
  Accessible without login Plain text file hello_controller.js Data Auxiliary data
  Accessible without login Plain text file refresh_controller.js Data Auxiliary data

  Files folder image Files (67)  /  assets  /  styles  
File Role Description
  Accessible without login Plain text file app.css Data Auxiliary data

  Files folder image Files (67)  /  bin  
File Role Description
  Accessible without login Plain text file console Example Example script
  Accessible without login Plain text file phpunit Data Auxiliary data

  Files folder image Files (67)  /  config  
File Role Description
Files folder imagepackages (13 files)
Files folder imageroutes (3 files)
  Plain text file bundles.php Class Class source
  Accessible without login Plain text file preload.php Aux. Configuration script
  Accessible without login Plain text file routes.yaml Data Auxiliary data
  Accessible without login Plain text file services.yaml Data Auxiliary data

  Files folder image Files (67)  /  config  /  packages  
File Role Description
  Accessible without login Plain text file asset_mapper.yaml Data Auxiliary data
  Accessible without login Plain text file doctrine.yaml Data Auxiliary data
  Accessible without login Plain text file doctrine_migrations.yaml Data Auxiliary data
  Accessible without login Plain text file framework.yaml Data Auxiliary data
  Accessible without login Plain text file monolog.yaml Data Auxiliary data
  Accessible without login Plain text file property_info.yaml Data Auxiliary data
  Accessible without login Plain text file routing.yaml Data Auxiliary data
  Accessible without login Plain text file security.yaml Data Auxiliary data
  Accessible without login Plain text file translation.yaml Data Auxiliary data
  Accessible without login Plain text file twig.yaml Data Auxiliary data
  Accessible without login Plain text file ux_turbo.yaml Data Auxiliary data
  Accessible without login Plain text file validator.yaml Data Auxiliary data
  Accessible without login Plain text file web_profiler.yaml Data Auxiliary data

  Files folder image Files (67)  /  config  /  routes  
File Role Description
  Accessible without login Plain text file framework.yaml Data Auxiliary data
  Accessible without login Plain text file security.yaml Data Auxiliary data
  Accessible without login Plain text file web_profiler.yaml Data Auxiliary data

  Files folder image Files (67)  /  docker  
File Role Description
  Accessible without login Plain text file apache.conf Data Auxiliary data
  Accessible without login Plain text file install-composer.sh Data Auxiliary data

  Files folder image Files (67)  /  migrations  
File Role Description
  Plain text file Version20241017212624.php Class Class source
  Plain text file Version20260518185758.php Class Class source

  Files folder image Files (67)  /  public  
File Role Description
  Accessible without login Plain text file .htaccess Data Auxiliary data
  Accessible without login Plain text file favicon.svg Data Auxiliary data
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (67)  /  src  
File Role Description
Files folder imageController (2 files)
Files folder imageEntity (2 files)
Files folder imageRepository (1 file)
Files folder imageService (1 file)
  Plain text file Kernel.php Class Class source

  Files folder image Files (67)  /  src  /  Controller  
File Role Description
  Plain text file GithubPhpProjectController.php Class Class source
  Plain text file TestController.php Class Class source

  Files folder image Files (67)  /  src  /  Entity  
File Role Description
  Plain text file GithubPhpProject.php Class Class source
  Plain text file Test.php Class Class source

  Files folder image Files (67)  /  src  /  Repository  
File Role Description
  Plain text file GithubPhpProjectRepository.php Class Class source

  Files folder image Files (67)  /  src  /  Service  
File Role Description
  Plain text file GithubApiService.php Class Class source

  Files folder image Files (67)  /  templates  
File Role Description
Files folder imagegithub_php_project (3 files)
  Accessible without login Plain text file base.html.twig Data Auxiliary data
  Accessible without login Plain text file index.html.twig Data Auxiliary data
  Accessible without login Plain text file tests.html.twig Data Auxiliary data

  Files folder image Files (67)  /  templates  /  github_php_project  
File Role Description
  Accessible without login Plain text file detail.html.twig Data Auxiliary data
  Accessible without login Plain text file index.html.twig Data Auxiliary data
  Accessible without login Plain text file refresh.stream.html.twig Data Auxiliary data

  Files folder image Files (67)  /  tests  
File Role Description
Files folder imageController (1 file)
Files folder imageEntity (2 files)
Files folder imageRepository (1 file)
Files folder imageService (1 file)
  Plain text file bootstrap.php Class Class source

  Files folder image Files (67)  /  tests  /  Controller  
File Role Description
  Plain text file GithubPhpProjectControllerTest.php Class Class source

  Files folder image Files (67)  /  tests  /  Entity  
File Role Description
  Plain text file GithubPhpProjectTest.php Class Class source
  Plain text file TestTest.php Class Class source

  Files folder image Files (67)  /  tests  /  Repository  
File Role Description
  Plain text file GithubPhpProjectRepositoryTest.php Class Class source

  Files folder image Files (67)  /  tests  /  Service  
File Role Description
  Plain text file GithubApiServiceTest.php Class Class source

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads  
 100%
Total:0
This week:0