Overview

What's in the box.

Format
PHP
6 more on their own pages
Files
Full source
code + documentation
License
Personal
1 commercial site
Updates
Lifetime
free, for your format
Support
Same day
business days, 9am–6pm ET
Delivery
Instant
download after checkout

Abirga PHP is a bold, energetic Music Festival and Event Promotion web template built on PHP 8.1 with a clean MVC architecture, Bootstrap 5, and MySQL database integration. It ships with 9 server-rendered pages, a built-in audio player, a filterable festival photo gallery, an album showcase with dynamic tracklists, a full event ticket e-commerce system with session-based cart, and a Particles.js hero — all powered by PHP with PDO database abstraction and Composer autoloading.

Built for PHP developers delivering music festival websites, concert promotion platforms, artist portfolio sites, or event e-commerce projects where server-side rendering, dynamic content management, and database-backed functionality are required. The MVC structure separates routing, controllers, models, and views cleanly — easy to extend with new routes, swap the MySQL backend for PostgreSQL, or wire to a REST API. PDO prepared statements protect every database query against SQL injection out of the box.

Everything in the Package

  • 9 server-rendered PHP pages across Home, Albums, Gallery, Blog, Shop, and Contact
  • PHP 8.1 — named arguments, match expressions, readonly properties, and fibers-ready
  • MVC architecture — Router, Controllers, Models, and View templates fully separated
  • MySQL database integration via PDO with prepared statements throughout
  • Composer autoloading — PSR-4 class autoloading, no manual require chains
  • Session-based shopping cart — add, update, and remove ticket and merchandise items server-side
  • Bootstrap 5.0.1 — responsive grid, mobile-first layout
  • Particles.js animated hero background on the home page
  • Custom audio player rendered server-side with track data pulled from the database
  • Album showcase: dynamic album grid from the albums table + album detail page with DB-sourced tracklist
  • Festival photo gallery: 32+ images served from the gallery table, filterable by event category via GET parameter
  • Blog module: dynamic blog archive and post detail with MySQL-backed posts and categories
  • Contact form with server-side validation, CSRF token protection, and PHP mail() / SMTP integration
  • Countdown timer to the next event date stored in the settings table
  • Newsletter subscription with email validation and database storage
  • Swiper carousels and WOW.js scroll animations on all pages
  • Magnific Popup lightbox for full-screen gallery images
  • Retina-ready, fully responsive from 320px to 1920px+
  • Well documented — setup guide covering database import, .env configuration, and SMTP setup

MVC Architecture and File Structure

  • Router: app/Router.php — maps URL paths to controller methods using regex-based route matching
  • Controllers: AlbumController, GalleryController, BlogController, CartController, CheckoutController, ContactController
  • Models: Album, Track, GalleryItem, BlogPost, CartItem, Order — each wraps PDO queries with typed return objects
  • Views: templates/ directory with reusable partials — header.php, footer.php, navbar.php, audio-player.php
  • Database abstraction: Database.php singleton wraps PDO connection — one connection per request lifecycle
  • All user input sanitised with htmlspecialchars() before output and passed through prepared statement bindings before DB queries
  • Environment configuration via .env file loaded by vlucas/phpdotenv — DB credentials, SMTP settings, and app URL
  • Folder structure: app/Controllers/, app/Models/, app/Router.php, templates/, public/, config/, database/

All 9 Pages

  • /home — Particles.js hero, festival Swiper slider, new album spotlight from DB, gallery preview section, newsletter, countdown
  • /albums — Dynamic album grid rendered from AlbumModel::getAll() — release dates, artist info, and cover art
  • /album-details/{slug} — AlbumController::show() fetches album and tracks by slug — full tracklist rendered server-side
  • /gallery — GalleryController::index() loads all photos; ?category= GET param filters by event category server-side
  • /blog — BlogController::index() paginates posts from the posts table with category filter support
  • /blog/{slug} — BlogController::show() fetches full post and related posts by shared category
  • /cart — CartController reads $_SESSION[‘cart’], renders line items with quantity forms and POST update handlers
  • /checkout — CheckoutController::index() renders form; CheckoutController::process() validates POST data, creates order in DB
  • /contact — ContactController::index() renders form; ContactController::submit() validates, saves to DB, sends email via SMTP

Session Cart and Checkout

  • Cart stored in $_SESSION[‘cart’] — array of item IDs, quantities, and prices
  • CartController::add() handles POST from any page — validates item ID against DB, adds to session
  • CartController::update() processes quantity changes via POST form on the cart page
  • CartController::remove() deletes item from session array and redirects back to cart
  • CheckoutController::process() validates all billing fields server-side, creates an order record in MySQL, and clears the session cart
  • CSRF token generated with bin2hex(random_bytes(32)) on form render and validated on POST
  • Order confirmation email sent via PHPMailer with SMTP credentials from .env

Database Schema

  • albums — id, title, artist, slug, release_date, cover_image, description
  • tracks — id, album_id (FK), title, duration, track_number, audio_file
  • gallery_items — id, image_path, category, alt_text, event_name
  • blog_posts — id, title, slug, category_id, body, excerpt, author, published_at, featured_image
  • orders — id, billing_name, billing_email, billing_address, total, status, created_at
  • order_items — id, order_id (FK), product_name, quantity, unit_price
  • newsletter_subscribers — id, email, subscribed_at, confirmed
  • settings — key, value — stores next event date, site name, social links
  • Full SQL dump included in database/abirga.sql — import and run immediately

Security

  • PDO prepared statements on every database query — SQL injection not possible through ORM layer
  • CSRF tokens on all POST forms — validated server-side before processing
  • htmlspecialchars() applied to all user-supplied output — XSS prevention
  • Password-protected admin area scaffolded with PHP sessions — extend with your own user table
  • File upload validation (gallery admin) — MIME type check, extension whitelist, and size limit enforced server-side
  • DB credentials, SMTP passwords, and app secrets stored in .env — never committed to version control

Use Cases

  • Music Festival Organisers: Full server-side CMS — manage albums, gallery, blog, and event settings from the database
  • Concert Promoters: Dynamic countdown pulls next event date from DB — update one row to change the site-wide timer
  • Artists and Bands: Album and tracklist management fully database-driven — no code changes to add releases
  • Event Ticket Sellers: Session cart and MySQL order management ready for payment gateway integration
  • PHP Developers and Agencies: MVC architecture, PDO models, and Composer autoloading — extend confidently without tech debt
  • Shared Hosting Deployments: Pure PHP 8.1 — no Node.js, no build step, no Docker — runs on any cPanel/Plesk host

Credits and Dependencies

  • PHP 8.1 — PHP License
  • Bootstrap 5.0.1 — MIT License
  • Composer — MIT License
  • vlucas/phpdotenv — BSD-3 License
  • PHPMailer — LGPL 2.1 License
  • Font Awesome 6 — Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT
  • Google Fonts — SIL Open Font License
  • Swiper.js — MIT License
  • Particles.js — MIT License
  • Magnific Popup — MIT License
  • WOW.js — MIT License
  • Demo images: Unsplash — Unsplash License (free for commercial use, no attribution required)
  • Demo images: Freepik — Freepik License (free for commercial use with attribution)
  • All demo images are for preview purposes only and are NOT included in the download. Replace with your own licensed images before publishing.
Changelog · 1 version

What's changed.

  • PHP 8.1 MVC architecture with Composer PSR-4 autoloading
  • MySQL database with full SQL schema dump included
  • PDO prepared statements on all queries u2014 SQL injection protected
  • Session-based shopping cart with server-side add, update, remove handlers
  • CSRF token protection on all POST forms
  • Dynamic album, tracklist, gallery, and blog content from database
  • Checkout with MySQL order creation and PHPMailer SMTP confirmation
  • Server-side gallery category filtering via GET parameter
  • Event countdown date stored in settings table
  • Newsletter subscriber storage with email validation
  • .env configuration for DB credentials, SMTP, and app URL
Customer reviews

What customers actually said.

Reviews

There are no reviews yet.

Be the first to review “Abirga — Festival Events PHP Website Template”

Need Abirga installed or customized?

Fixed prices, done by the developers who built this template. Pick a service and we take it from there.

  • Theme installation
  • Color scheme customization
  • Speed optimization
  • 1-hour web development
See studio services
Abirga — Festival Events PHP Website Template
$18 · PHP