Add Hosting and Go Live
Pick a plan and we deploy your template on it within 48 hours.
- 1 Website
- 10 GB Storage
- Free SSL
- 1 Database
- 1 Website
- 25 GB Storage
- Free SSL
- 10 Databases
- 10 Websites
- 50 GB Storage
- Free SSL (all sites)
- 25 Databases
- 25 Websites
- 75 GB Storage
- Free SSL (all sites)
- 50 Databases
- 100 GB Storage
- 4 GB RAM
- 2 CPUs
- Free SSL
- 200 GB Storage
- 8 GB RAM
- 4 CPUs
- Free SSL
- 300 GB Storage
- 16 GB RAM
- 8 CPUs
- Free SSL
- 400 GB Storage
- 32 GB RAM
- 16 CPUs
- Free SSL
Free SSL | 99.9% uptime | 24/7 support | No domain included
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.
v1.0 Initial PHP Release - PHP 8.1 MVC architecture with Composer PSR-4 autoloading - MySQL database with full SQL schema dump included - PDO prepared statements on all queries — 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
Reviews
There are no reviews yet.