PHPackages                             bigya/talibphp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. bigya/talibphp

ActiveProject[Framework](/categories/framework)

bigya/talibphp
==============

talibphp — a simple, efficient PHP framework with Phinx migrations and a built-in admin panel.

v1.0.1(1mo ago)04MITPHPPHP &gt;=7.4

Since May 29Pushed 1mo agoCompare

[ Source](https://github.com/bigyabajracharya/talibphp)[ Packagist](https://packagist.org/packages/bigya/talibphp)[ RSS](/packages/bigya-talibphp/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

talibphp
========

[](#talibphp)

A simple, efficient PHP framework with Phinx database migrations, PSR-4 autoloading, and a built-in admin panel — no bloat, no magic.

---

Requirements
------------

[](#requirements)

- PHP &gt;= 7.4
- Apache with `mod_rewrite` enabled
- MySQL / MariaDB
- Composer

---

Installation
------------

[](#installation)

```
composer create-project bigya/talibphp my-project
```

This will:

- Download the framework
- Run `composer install`
- Copy `phinx.php.example` → `phinx.php`
- Create `error.log` and `uploads/` directories
- Print your next steps

---

Quick Start
-----------

[](#quick-start)

**1. Configure your database**

Open `phinx.php` and update the `development` credentials:

```
'development' => [
    'adapter' => 'mysql',
    'host'    => 'localhost',
    'name'    => 'your_db_name',
    'user'    => 'root',
    'pass'    => 'your_password',
    'port'    => '3306',
    'charset' => 'utf8',
],
```

**2. Run migrations**

```
vendor/bin/phinx migrate
```

**3. Seed the default admin user**

```
vendor/bin/phinx seed:run -s AdminSeeder
```

**4. Set up your web server**

Point Apache's `DocumentRoot` to the **project root** (not `/public`). The `.htaccess` routes all traffic to `public/` automatically.

**5. Log in to the admin panel**

Visit `http://localhost/your-project/admin`

FieldValueEmail`admin@example.com`Password`TalibPHP2026!`> **Change these immediately** after first login by editing `db/seeds/AdminSeeder.php` and re-seeding, or updating directly in the database.

---

Directory Structure
-------------------

[](#directory-structure)

```
my-project/
├── .htaccess              → Routes all traffic to public/ (hides it from URLs)
├── phinx.php              → Your DB credentials (gitignored)
├── phinx.php.example      → Template — safe to commit
├── error.log              → Runtime error log (gitignored)
│
├── config/
│   ├── db.php             → getPDOConnection() + path constants
│   └── error_logging.php  → logMessage() + error settings
│
├── src/                   → PSR-4 autoloaded (App\)
│   └── Helpers/
│       ├── Helper.php     → slugify(), uploadImage()
│       └── AdminAuth.php  → login(), check(), requireLogin(), logout()
│
├── db/
│   ├── migrations/        → Phinx migration files
│   └── seeds/             → Phinx seeders
│
└── public/                → Web root
    ├── index.php           → Your homepage
    ├── includes/
    │   ├── header.php
    │   └── footer.php
    └── admin/             → Admin panel
        ├── index.php      → Login
        ├── dashboard.php
        ├── logout.php
        └── includes/
            ├── header.php → Sidebar + auth guard
            └── footer.php

```

---

Creating Migrations
-------------------

[](#creating-migrations)

```
vendor/bin/phinx create CreatePostsTable
```

Edit the generated file in `db/migrations/`:

```
public function up(): void
{
    $table = $this->table('posts');
    $table->addColumn('title', 'string', ['limit' => 255])
          ->addColumn('slug', 'string', ['limit' => 255])
          ->addColumn('body', 'text')
          ->addColumn('sort_order', 'integer', ['default' => 0])
          ->addTimestamps()
          ->addIndex(['slug'], ['unique' => true])
          ->create();
}

public function down(): void
{
    $this->table('posts')->drop()->save();
}
```

Then run:

```
vendor/bin/phinx migrate
```

---

Helper Classes
--------------

[](#helper-classes)

### `App\Helpers\Helper`

[](#apphelpershelper)

```
use App\Helpers\Helper;

// Generate a URL-safe slug
Helper::slugify('Hello World!'); // → "hello-world"

// Upload an image, returns filename or null
Helper::uploadImage($_FILES['image'], '../../uploads/');
```

### `App\Helpers\AdminAuth`

[](#apphelpersadminauth)

```
use App\Helpers\AdminAuth;

// Guard a page — redirects to /admin if not logged in
AdminAuth::requireLogin();

// Handle login form POST
if (AdminAuth::login($email, $password, $pdo)) { ... }

// Check session
AdminAuth::check(); // → bool

// Logout
AdminAuth::logout();
```

---

Admin Page Pattern
------------------

[](#admin-page-pattern)

Every admin CRUD page follows this structure:

```

```

---

Phinx Reference
---------------

[](#phinx-reference)

```
vendor/bin/phinx migrate              # Run all pending migrations
vendor/bin/phinx rollback             # Roll back the last migration
vendor/bin/phinx create CreateTable   # Create a new migration
vendor/bin/phinx seed:run             # Run all seeders
vendor/bin/phinx seed:run -s Name     # Run a specific seeder
vendor/bin/phinx migrate -e production # Run on production environment
vendor/bin/phinx status               # Show migration status
```

---

License
-------

[](#license)

MIT © [Bigya Bajracharya](https://github.com/bigyabajracharya)

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance89

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

56d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/914482?v=4)[hc](/maintainers/bigya)[@bigya](https://github.com/bigya)

---

Top Contributors

[![bigyabajracharya](https://avatars.githubusercontent.com/u/107560222?v=4)](https://github.com/bigyabajracharya "bigyabajracharya (3 commits)")

---

Tags

phpframeworkmigrationsphinxmvcadmin

### Embed Badge

![Health badge](/badges/bigya-talibphp/health.svg)

```
[![Health](https://phpackages.com/badges/bigya-talibphp/health.svg)](https://phpackages.com/packages/bigya-talibphp)
```

###  Alternatives

[mirekmarek/php-jet

PHP Jet is modern, powerful, real-life proven, really fast and secure, small and light-weight framework for PHP8 with great clean and flexible modular architecture containing awesome developing tools. No magic, just clean software engineering.

241.3k](/packages/mirekmarek-php-jet)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
