Smithery Logo
MCPsSkillsDocsPricing
Login
NewFlame, an assistant that learns and improves. Available onTelegramSlack
    valec3

    backend-architecture-mvc

    valec3/backend-architecture-mvc
    Coding

    About

    SKILL.md

    Install

    • Telegram
      Telegram
    • Slack
      Slack
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    • Download skill
    ├─
    ├─
    └─
    Smithery Logo

    Give agents more agency

    Resources

    DocumentationPrivacy PolicySystem Status

    Company

    PricingAboutBlog

    Connect

    © 2026 Smithery. All rights reserved.

    About

    MVC pattern in CodeIgniter, separation of concerns.

    SKILL.md

    Backend Architecture MVC

    When to use this skill

    • Organizing CodeIgniter applications
    • Separating concerns properly
    • Building maintainable apps

    Workflow

    • Controllers handle HTTP requests
    • Models handle data logic
    • Views handle presentation
    • Keep controllers thin
    • Business logic in services

    Instructions

    Controller (Thin)

    <?php
    
    namespace App\Controllers;
    
    use App\Services\UserService;
    
    class UserController extends BaseController
    {
        public function __construct(
            private readonly UserService $service
        ) {}
    
        public function index()
        {
            $users = $this->service->getAllUsers();
            return view('users/index', ['users' => $users]);
        }
    
        public function store()
        {
            $user = $this->service->createUser($this->request->getPost());
            return $this->respond($user);
        }
    }
    

    Model (Data Access)

    <?php
    
    namespace App\Models;
    
    use CodeIgniter\Model;
    
    class UserModel extends Model
    {
        protected $table = 'users';
        protected $allowedFields = ['name', 'email'];
        protected $returnType = 'App\Entities\User';
    }
    

    Service (Business Logic)

    <?php
    
    namespace App\Services;
    
    class UserService
    {
        public function __construct(
            private UserModel $model
        ) {}
    
        public function getAllUsers()
        {
            return $this->model->findAll();
        }
    }
    

    Resources

    • Controllers: thin, route to services
    • Models: database operations only
    • Services: business logic
    Recommended Servers
    Supabase
    Supabase
    ThinAir Data
    ThinAir Data
    Microsoft Learn MCP
    Microsoft Learn MCP
    Repository
    valec3/agents.skills.md
    Files