https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_b964594d3d957944241961017b9eb19bf02834de44cce93d8e67dd306852dbe346167181e455e33d5268ea01d973d77bb056848546f31794f31a4c31a9da5aa3.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_23f1ae74c634d7e5e0a067c22b7a8c2d79c3ffd9a3b9395fc82c1b3b99635552b994f1f72f532f28ceaff1ea054ea026cd488cd62fa03a4ad91d212b5f3c5a72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_e6b7e0bf68aa4a61d5c6a0065ec42e38a0cc53e39a4fbee057b72d4b2297b37c01e716e1e61bac7f240b5a0edbb178d37b62f7ed4ea4ea3d10e46dbe7429f326.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_bfff9e63e857e9ee612e292d4a6edf3ced64d6a756925c953a9d8f77845ff601eca64d73dfa48756b1a9f4a4d6de6127a273bcde16ddeb71a22383460f4e94b0.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_f4dd7e1d73ae5eda35ed5ad6aa965b612dbf483ece3ca50c1e8e30ad8dff1c66a160ed75e958e2db399661d229874783e0834ad813a479437035666b8e9e3386.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_4fce0769137d4cd096989b0349bc3c2bbfca79ac311fdf714c41ab24d87551c7b49b756c8a8de090b0714a0ad0560e49fa532ba5a88875ea4afd78efac464df6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_85cec8b07d60426b11040e471babca0d2f9c8dc87a9b56e06cad39828f7f67179e29609100f282a574872c9a93fb635b25416300eb4c97bc5a653d00cf6f8dbf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_6768e5a27d4d357347338621c0d20bd269b126d30eec796193390f2f530fbaea60af84130c46f9786114be65149e661e87d55c339219c90aa76396d7e5b734ef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_2acd6bdff3b680341e8c727da5169a647123eb8fd0a90253161b4c3af272c15d293bf9bb217008bb13f84d1910b0e166798001f8603b6c026d5c20a76c41d47c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_c6ff4b5e12c504198475a3e4f136148c5d3830926b343511936f5086242fa2012e944c6b80466017cace1401199c3822bf88cf237a0ab02d8282323da43232ee.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_268c9bba6ba649318f0da28c37b09a9bbfa371210f9b6b52faa7fd8ae94abf6b3c3bfeb5df5705c93495ce1152ca58aeabc435d6c6c1bd959025165c3f50e086.js
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • Featured
    • Advanced Python Topics
    • AWS Learning Roadmap
    • JWT Complete Guide
    • Git CheatSheet
  • Explore
    • Programming
    • Development
      • microservices
      • Front End
    • Database
    • DevOps
    • Productivity
    • Tutorial Series
      • C# LinQ Tutorials
      • PHP Tutorials
  • Dev Tools
    • JSON Formatter
    • Diff Checker
    • JWT Decoder
    • JWT Generator
    • Base64 Converter
    • Data Format Converter
    • QR Code Generator
    • Javascript Minifier
    • CSS Minifier
    • Text Analyzer
  • About
  • Contact
CodeSamplez.com

CodeSamplez.com

Programming And Development Resources

You are here: Home / Development / CodeIgniter Best Practices: A Comprehensive Guide

CodeIgniter Best Practices: A Comprehensive Guide

Updated May 24, 2025 by Rana Ahsan 4 Comments ⏰ 12 minutes

codeigniter best practices

When I first started working with CodeIgniter, I made every mistake you can imagine. Messy controllers, spaghetti code in views, and security vulnerabilities that kept me awake at night. But here’s the thing – after years of building applications with this fantastic PHP framework, I’ve discovered the exact CodeIgniter best practices that separate amateur developers from professionals.

CodeIgniter remains one of the most popular PHP frameworks because it’s lightweight, flexible, and incredibly developer-friendly. However, without following proper best practices, even the most elegant framework can become a nightmare to maintain.

Tip💡: If you are just starting out with codeigniter framework, codeigniter tutorial for beginners might just be what you need!

Why CodeIgniter Best Practices Matter More Than Ever

Before diving into the specific techniques, let me tell you why these practices are absolutely critical. I’ve seen countless projects fail not because of technical limitations, but because developers ignored fundamental best practices from the start.

Clean, organized code isn’t just about aesthetics – it’s about building applications that scale, perform well, and remain maintainable as your team grows. The CodeIgniter best practices I’m sharing here will save you hundreds of hours of debugging and refactoring later.

Essential File and Directory Structure Best Practices

Organize Your Controllers Like a Pro

The biggest mistake I see developers make is throwing everything into single controllers. Here’s how you should structure your application:

Create module-based directories:

application/
├── controllers/
│   ├── admin/
│   │   ├── Dashboard.php
│   │   ├── Users.php
│   │   └── Reports.php
│   ├── api/
│   │   ├── Auth.php
│   │   └── Data.php
│   └── frontend/
│       ├── Home.php
│       └── Products.php

This modular approach makes your codebase incredibly easy to navigate. Furthermore, when you’re working on large applications, this structure prevents the dreaded “controller bloat” that haunts so many projects.

Views Directory Organization

Your views should mirror your controller structure exactly:

application/views/
├── admin/
│   ├── dashboard/
│   │   ├── index.php
│   │   └── analytics.php
│   └── shared/
│       ├── header.php
│       └── footer.php
├── frontend/
│   ├── home/
│   └── products/
└── templates/
    ├── emails/
    └── pdf/

This organization eliminates confusion and makes templates incredibly easy to locate. Additionally, separating shared components prevents code duplication across your application.

Use HMVC Extension for Ultimate Flexibility

Traditional MVC works great for small applications, but when you’re building enterprise-level systems, HMVC (Hierarchical Model-View-Controller) becomes essential. The HMVC extension allows you to:

  • Create truly modular applications
  • Reuse components across different sections
  • Maintain clean separation of concerns
  • Build scalable architecture from day one

Install the HMVC extension and organize your modules like this:

application/modules/
├── auth/
│   ├── controllers/
│   ├── models/
│   ├── views/
│   └── config/
├── dashboard/
└── reports/

Master the Art of Extending Core Classes

Create Custom Base Controllers

Every professional CodeIgniter application needs custom base controllers. Here’s why this practice is absolutely non-negotiable:

// application/core/MY_Controller.php
class MY_Controller extends CI_Controller 
{
    protected $data = array();
    
    public function __construct() 
    {
        parent::__construct();
        
        // Global authentication check
        $this->check_authentication();
        
        // Set common template data
        $this->data['site_title'] = 'Your App Name';
        $this->data['current_user'] = $this->get_current_user();
        
        // Load common libraries
        $this->load->library('session');
        $this->load->helper('url');
    }
    
    protected function render_view($view, $data = array()) 
    {
        $this->data = array_merge($this->data, $data);
        $this->load->view('templates/header', $this->data);
        $this->load->view($view, $this->data);
        $this->load->view('templates/footer', $this->data);
    }
}Code language: PHP (php)

This approach eliminates code duplication and ensures consistent behavior across your entire application. Moreover, it makes implementing global features like authentication and logging incredibly straightforward.

Extend Core Libraries for Custom Functionality

Don’t hack the CodeIgniter core – extend it properly:

// application/libraries/MY_Form_validation.php
class MY_Form_validation extends CI_Form_validation 
{
    public function __construct($rules = array()) 
    {
        parent::__construct($rules);
    }
    
    public function valid_phone($phone) 
    {
        return preg_match('/^\+?[1-9]\d{1,14}$/', $phone);
    }
    
    public function strong_password($password) 
    {
        return preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/', $password);
    }
}Code language: PHP (php)

Custom validation rules keep your controllers clean and make your validation logic reusable throughout the application.

Database and Model Best Practices That Actually Work

Follow the Active Record Pattern Correctly

CodeIgniter’s Query Builder is powerful, but many developers use it incorrectly. Here’s the right way:

// Good - Method chaining with clear logic
public function get_active_users($limit = 10) 
{
    return $this->db->select('id, username, email, last_login')
                   ->from('users')
                   ->where('status', 'active')
                   ->where('last_login >', date('Y-m-d', strtotime('-30 days')))
                   ->order_by('last_login', 'DESC')
                   ->limit($limit)
                   ->get()
                   ->result_array();
}

// Better - With proper error handling
public function get_user_by_email($email) 
{
    $query = $this->db->select('*')
                     ->from('users')
                     ->where('email', $email)
                     ->where('deleted_at IS NULL')
                     ->limit(1)
                     ->get();
    
    if ($query->num_rows() == 1) {
        return $query->row_array();
    }
    
    return false;
}Code language: PHP (php)

Implement Proper Model Structure

Your models should be fat, while controllers should be thin. This is one of the most important CodeIgniter best practices:

class User_model extends CI_Model 
{
    private $table = 'users';
    
    public function create_user($data) 
    {
        // Validate and sanitize data
        $data = $this->prepare_user_data($data);
        
        // Begin transaction
        $this->db->trans_start();
        
        // Insert user
        $this->db->insert($this->table, $data);
        $user_id = $this->db->insert_id();
        
        // Create user profile
        $this->create_user_profile($user_id);
        
        // Complete transaction
        $this->db->trans_complete();
        
        if ($this->db->trans_status() === FALSE) {
            return false;
        }
        
        return $user_id;
    }
    
    private function prepare_user_data($data) 
    {
        return array(
            'username' => trim($data['username']),
            'email' => strtolower(trim($data['email'])),
            'password' => password_hash($data['password'], PASSWORD_DEFAULT),
            'created_at' => date('Y-m-d H:i:s')
        );
    }
}Code language: PHP (php)

Tip💡: Level up your Database driven CodeIgniter application with Doctrine ORM

Security Best Practices That Prevent Disasters

Input Validation and Sanitization

Never trust user input. This principle has saved my applications from countless attacks:

public function create_post() 
{
    // Set validation rules
    $this->form_validation->set_rules('title', 'Title', 'required|trim|max_length[255]|xss_clean');
    $this->form_validation->set_rules('content', 'Content', 'required|trim');
    $this->form_validation->set_rules('category_id', 'Category', 'required|numeric');
    
    if ($this->form_validation->run() == FALSE) {
        $this->load->view('posts/create');
        return;
    }
    
    // Additional sanitization
    $data = array(
        'title' => $this->security->xss_clean($this->input->post('title')),
        'content' => $this->security->xss_clean($this->input->post('content')),
        'category_id' => (int) $this->input->post('category_id'),
        'author_id' => $this->session->userdata('user_id')
    );
    
    $this->post_model->create($data);
}Code language: PHP (php)

CSRF Protection Implementation

Enable CSRF protection in your config and use it consistently:

// config/config.php
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_token';
$config['csrf_cookie_name'] = 'csrf_cookie';
$config['csrf_expire'] = 7200;

// In your forms
echo form_open('posts/create');
echo form_hidden($this->security->get_csrf_token_name(), $this->security->get_csrf_hash());Code language: PHP (php)

SQL Injection Prevention

Always use parameter binding with Query Builder:

// Wrong - Vulnerable to SQL injection
$sql = "SELECT * FROM users WHERE email = '" . $email . "'";
$query = $this->db->query($sql);

// Right - Safe parameter binding
$query = $this->db->get_where('users', array('email' => $email));Code language: PHP (php)

Performance Optimization Techniques

Implement Smart Caching Strategies

Caching transforms slow applications into lightning-fast experiences:

// Enable caching in config
$config['cache_path'] = APPPATH . 'cache/';

// Use output caching for static content
public function homepage() 
{
    $this->output->cache(60); <em>// Cache for 60 minutes</em>
    
    $data['posts'] = $this->post_model->get_featured_posts();
    $this->load->view('homepage', $data);
}

// Implement data caching for expensive operations
public function get_statistics() 
{
    $cache_key = 'dashboard_stats';
    
    if (!$stats = $this->cache->get($cache_key)) {
        $stats = $this->calculate_complex_statistics();
        $this->cache->save($cache_key, $stats, 3600); <em>// Cache for 1 hour</em>
    }
    
    return $stats;
}Code language: PHP (php)

Database Query Optimization

Optimize your database interactions for better performance:

// Use database query caching
$this->db->cache_on();
$heavy_query = $this->db->get('large_table');
$this->db->cache_off();

// Implement pagination for large datasets
public function get_paginated_posts($limit, $offset) 
{
    return $this->db->select('id, title, excerpt, created_at')
                   ->from('posts')
                   ->where('status', 'published')
                   ->order_by('created_at', 'DESC')
                   ->limit($limit, $offset)
                   ->get()
                   ->result_array();
}Code language: PHP (php)

Advanced Configuration and Environment Management

Environment-Specific Configuration

Proper environment management prevents deployment disasters:

// index.php - Set environment
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

// config/development/database.php
$db['default'] = array(
    'dsn' => '',
    'hostname' => 'localhost',
    'username' => 'dev_user',
    'password' => 'dev_password',
    'database' => 'myapp_dev',
    // ... other settings
);

// config/production/database.php
$db['default'] = array(
    'dsn' => '',
    'hostname' => getenv('DB_HOST'),
    'username' => getenv('DB_USER'),
    'password' => getenv('DB_PASS'),
    'database' => getenv('DB_NAME'),
    // ... other settings
);Code language: PHP (php)

Error Handling and Logging

Implement comprehensive error handling:

// config/config.php
$config['log_threshold'] = 1; <em>// Error logging</em>
$config['log_path'] = APPPATH . 'logs/';

// Custom error handling in controllers
public function process_payment() 
{
    try {
        $result = $this->payment_gateway->charge($amount);
        
        if (!$result->success) {
            log_message('error', 'Payment failed: ' . $result->error_message);
            throw new Exception('Payment processing failed');
        }
        
        return $result;
        
    } catch (Exception $e) {
        log_message('error', 'Payment exception: ' . $e->getMessage());
        $this->session->set_flashdata('error', 'Payment could not be processed');
        redirect('checkout');
    }
}Code language: PHP (php)

Modern Development Practices

API Development Best Practices

Building RESTful APIs with CodeIgniter requires specific techniques:

class Api_Controller extends CI_Controller 
{
    public function __construct() 
    {
        parent::__construct();
        $this->load->library('rest');
        $this->verify_api_key();
    }
    
    public function users_get() 
    {
        $users = $this->user_model->get_all_users();
        
        $this->output
             ->set_content_type('application/json')
             ->set_status_header(200)
             ->set_output(json_encode(array(
                 'status' => 'success',
                 'data' => $users
             )));
    }
    
    public function users_post() 
    {
        $input = json_decode($this->input->raw_input_stream, true);
        
        if ($this->validate_user_input($input)) {
            $user_id = $this->user_model->create_user($input);
            
            $this->output
                 ->set_content_type('application/json')
                 ->set_status_header(201)
                 ->set_output(json_encode(array(
                     'status' => 'success',
                     'user_id' => $user_id
                 )));
        }
    }
}Code language: PHP (php)

Integration with Modern Frontend Frameworks

CodeIgniter works beautifully as a backend API for React, Vue, or Angular applications:

// Enable CORS for frontend integration
public function __construct() 
{
    parent::__construct();
    
    // Enable CORS
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
    header("Access-Control-Allow-Headers: Content-Type, Authorization");
    
    if ($this->input->method() == 'options') {
        exit(0);
    }
}Code language: PHP (php)

Testing and Quality Assurance

Unit Testing Setup

Implement proper testing practices:

// tests/models/User_model_test.php
class User_model_test extends PHPUnit_Framework_TestCase 
{
    public function setUp() 
    {
        $this->CI = &get_instance();
        $this->CI->load->model('user_model');
    }
    
    public function test_create_user() 
    {
        $user_data = array(
            'username' => 'testuser',
            'email' => '[email protected]',
            'password' => 'strongpassword123'
        );
        
        $user_id = $this->CI->user_model->create_user($user_data);
        
        $this->assertNotFalse($user_id);
        $this->assertInternalType('integer', $user_id);
    }
}Code language: PHP (php)

Tip💡: Explore all CodeIgniter Tutorials by CodeSamplez.com in one place!

Deployment and Maintenance Best Practices

Version Control and Deployment

Never deploy without proper version control:

# .gitignore for CodeIgniter
application/cache/*
application/logs/*
.env
uploads/*
!uploads/index.htmlCode language: PHP (php)

Database Migration Management

Use CodeIgniter’s migration feature for database changes:

// application/migrations/001_create_users_table.php
class Migration_Create_users_table extends CI_Migration 
{
    public function up() 
    {
        $this->dbforge->add_field(array(
            'id' => array(
                'type' => 'INT',
                'constraint' => 11,
                'unsigned' => TRUE,
                'auto_increment' => TRUE
            ),
            'username' => array(
                'type' => 'VARCHAR',
                'constraint' => 50,
                'unique' => TRUE
            ),
            'email' => array(
                'type' => 'VARCHAR',
                'constraint' => 100,
                'unique' => TRUE
            ),
            'created_at' => array(
                'type' => 'DATETIME'
            )
        ));
        
        $this->dbforge->add_key('id', TRUE);
        $this->dbforge->create_table('users');
    }
    
    public function down() 
    {
        $this->dbforge->drop_table('users');
    }
}Code language: PHP (php)

Common Pitfalls and How to Avoid Them

Don’t Put Business Logic in Controllers

This is the biggest mistake I see repeatedly. Controllers should be thin layers that handle HTTP requests and responses:

// Wrong - Fat controller
public function create_order() 
{
    // 50+ lines of business logic here
}

// Right - Thin controller
public function create_order() 
{
    if ($this->form_validation->run() == FALSE) {
        $this->load->view('orders/create');
        return;
    }
    
    $order_data = $this->input->post();
    $result = $this->order_service->create_order($order_data);
    
    if ($result) {
        $this->session->set_flashdata('success', 'Order created successfully');
        redirect('orders/view/' . $result);
    } else {
        $this->session->set_flashdata('error', 'Failed to create order');
        $this->load->view('orders/create');
    }
}Code language: PHP (php)

The Future of CodeIgniter Development

CodeIgniter continues evolving, and these best practices ensure your applications remain maintainable and scalable. The key is consistency – establish these patterns early and stick to them throughout your project.

Remember, CodeIgniter best practices aren’t just about writing better code today. They’re about building applications that will serve your users well for years to come. Every minute you invest in following these practices saves hours of debugging and refactoring later.

By implementing these CodeIgniter best practices, you’ll build applications that are secure, performant, and maintainable. Your future self (and your team) will thank you for taking the time to do things right from the beginning.

Whether you’re building a simple blog or a complex enterprise application, these practices provide the foundation for success. Start implementing them today, and watch your CodeIgniter development skills reach professional levels.

Share if liked!

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Pinterest (Opens in new window) Pinterest
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on Tumblr (Opens in new window) Tumblr
  • Click to share on Pocket (Opens in new window) Pocket

You may also like


Discover more from CodeSamplez.com

Subscribe to get the latest posts sent to your email.

First Published On: November 16, 2011 Filed Under: Development Tagged With: codeigniter, php

About Rana Ahsan

Rana Ahsan is a seasoned software engineer and technology leader specialized in distributed systems and software architecture. With a Master’s in Software Engineering from Concordia University, his experience spans leading scalable architecture at Coursera and TopHat, contributing to open-source projects. This blog, CodeSamplez.com, showcases his passion for sharing practical insights on programming and distributed systems concepts and help educate others.
Github | X | LinkedIn

Reader Interactions

Comments

  1. Carlos Vergara says

    January 26, 2012 at 9:41 AM

    Excellent tips. Thanks.

    Reply
  2. john says

    August 12, 2012 at 2:29 PM

    definitely helpful for someone like me just getting started using codeigniter

    Reply
  3. Ricardo Fabrizio says

    March 26, 2016 at 11:12 PM

    Extremely useful your article, thanks a lot.

    Reply
  4. Krishna says

    August 24, 2016 at 2:15 AM

    A lot of thanks

    Reply

Leave a ReplyCancel reply

Primary Sidebar

  • Facebook
  • X
  • Pinterest
  • Tumblr

Subscribe via Email

Top Picks

python local environment setup

Python Local Development Environment: Complete Setup Guide

In-Depth JWT Tutorial Guide For Beginners

JSON Web Tokens (JWT): A Complete In-Depth Beginners Tutorial

The Ultimate Git Commands CheatSheet

Git Commands Cheatsheet: The Ultimate Git Reference

web development architecture case studies

Web Development Architecture Case Studies: Lessons From Titans

static website deployment s3 cloudfront

Host Static Website With AWS S3 And CloudFront – Step By Step

Featured Dev Tools

  • Diff Checker
  • JWT Decoder

Recently Published

service worker best practices

Service Worker Best Practices: Security & Debugging Guide

advanced service worker features

Advanced Service Worker Features: Push Beyond the Basics

service worker framework integration

Service Workers in React: Framework Integration Guide

service worker caching strategies

Service Worker Caching Strategies: Performance & Offline Apps

service worker lifecycle

Service Worker Lifecycle: Complete Guide for FE Developers

Footer

Subscribe via Email

Follow Us

  • Facebook
  • X
  • Pinterest
  • Tumblr

Demos

  • Demo.CodeSamplez.com

Explore By Topics

Python | AWS | PHP | C# | Javascript

Copyright © 2025

https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_eedf262ec6165c9ccd4c0efda070c8b72e7e36bbc9e87807cbbb0f6bc5c1fc022907ef59c7b8a3d9b7de87b977f1703821ad63eae720716d4221431e9adb73c0.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_c402e38f1879c18090377fb6b73b15ac158be453ecda3a54456494fe8aba42b990c293bae5424e5643d52515ffc2067e0819995be8d07d5bba9107a96780775c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_ffc3511227531cc335353c54c3cbbaa11d0b80e5cb117478e144436c13cd05495b67af2e8950480ed54dbdabcdcef497c90fdb9814e88fe5978e1d56ce09f2cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_d57da9abfef16337e5bc44c4fc6488de258896ce8a4d42e1b53467f701a60ad499eb48d8ae790779e6b4b29bd016713138cd7ba352bce5724e2d3fe05d638b27.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_d286e50977f467ebee8fecdcb44e6a6b9a29f2b911dfe58b30ff4f0545aa2b19bca73246e23de9a6d2380bf20e6b8a001b5ba2051042d104c6d411b474fd3368.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_556272a5f9c5e1b26dcf93c48dd6c60d2107db888f97b70498f312c9052331e10005db30e1259f325d650689883af8e7250f282b512037503c7b7dcf03bef034.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_dccc492dbbfdac33d1411f9df909e849c7268fcf99b43007f278cde3a0adc0ae00e8cae5ec81cf255b9a6eae74e239ba1fa935572af77173219cb081f7d2327d.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_00bacf9e36181aac2b666d110cd9d82257f846766e7041b2d7b3c909b458982931ccc9b203e37098fbdfcf43ca359cf04e3824a724a6789fc204196d3a72ad29.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_6aac3c84b5bbc35cb51dfc0625cba7d2f7b7590db52263c45fc2b33c7de87fabf66309098259a9e69447f7994b1210370a730873f80843de6a135eefec28b6f3.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_68b6d1949e90b6a37c5195ae17874e7c2455352144f28a76be0f68f7a941e6d664fa3c931485f2c5463521acdac05ff6642f0c94fa557a087caa9478d162f085.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_bb8058a9e234a7ffaa98891b1df7f6b8e67410e6984568b151daa05113b8c7f89d7b5918ae73f020998a16f7f5a087a13d6a9a5e5d7c301e2ca12fd9d1f8d177.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_647fb67570c6108fb10ae6785a1abdbecac99ffcf80351d0bef17c3cf783dce497b1895fcdaae997dacc72c359fbfb128cc1540dd7df56deb4961e1cd4b22636.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_f7a298a0f1f754623fe3b30f6910ce2c1373f715450750bd7a391571812b00df1917e2be90df6c4efc54dbdfda8616278a574dea02ba2c7a31992768df8db334.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_df30604d5842ef29888c3c1881220dc6d3f8854666d94f0680c5f38aa643c5fb79b10eb9f10998d8856eb24ca265783195937434fd6c2bb8e4846df0277a7fb7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_f17fe6fb0993f1703181d7ae9e9ea570f3d33a43afd6f2a4567daa1a6745698c7b8193dc72d50991d2dd87cd3dcf663959206607d193a9b57926d061a1f50aef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_945dcbab2c2a131f3c90f4fb91776b76066d589f84fb55bff25cd5d79a56218000616bfca1f0af9a74f32348693707af49e8fe624de8aa34f1e1c5b6a25709cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_65820d252e1b93596de6697fd5f02483f3e2524a0696c7d698b64745edb32bf5831a90e556842f5f88c8209766cc78ca3a41cf783d20236a9f90d4a7ea7b3e72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_7286884797a1210857e2a36f8ab46604b0034b6abf512380447a5763c873db6a72b8547f660053de0ea69faef1eb64878f39ff4b0ea86c963efab95764a3bf5b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_cbcf6c279ac6c6a25ae138bf964e64a5fd90d22dcdf8a53b6fe7b72cefa51063bfb0181a6e50dd2acdcae2795619887d1d83b10461e44e5103be756f2588d837.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_47965bc586b95810c925b9df3314e0c9a5cd121e70ca0831f87df0bc034695de4f83ecf2def86f737e14614ee138794473cf32cd3082a5d38db9dec0c1f266fa.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_12aa201cea075846d266536aa222d64d4088b851d87f55dac5e611b77add6826c8ebc6e82650fcd1a9e88a05a0072dedd195719c5f64cd4580a0acd8aee05d92.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_cb49453d7adf739b0b22188a9837d379fa567d7ebca5989e26a005617b6c729295bf3b2251790047e6ab51c0c3aee49764cc9412ba13c3750b304e23703b3b5d.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_3cab3ccf1ea269e3828b399a88a33177342993110a9322e337c87fe171323f8e9010d8a2a944eece0cd13396be2f047c0c85ea72cc5f3f818adbdaa4386c355c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_d87ea86dd0e7ecdd5fe7a5bb67becf943e57c3add866b456034d51663d099031bd563e12f61fdccc044969adf938a8584ed22ccd401ab8b669e20e4f92fb54e8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_35311c3d71a3605fad4e1d6b50f3911311cdcc46418bdf56d6d0308a75a69585269ee7582a335e29989adf308fa1a81a10a2c2d4e257e9d680447a4996f6269e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_f4fc182ef03c12e9dcadd6febc3dbaa4a29134469057ca9e8ec0be2f2de29a494514ff4b59798e74debf26f78b2df2b3e2665c69b77035761fb463b783202915.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_85c0f2769456e60153b0fd8364b82a035da53384f62de342d9bdca806f3f1ea56486919a00497a18d457949c82bf8bfacc4423fc332074ddf71a49a8fe628fff.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_1b7e49e98f5960d71636812e807832cc98a24f48bc493652ddb2f9c4ce08bc89a8fd5d9550a8e2887d1d8887ce02924a878361c296d21ceba18a56f3ace130bd.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_09eecfdd96206ed13830b4b93cfb2cc75cd38083671a34194437b5734b5bb38712209dc335b07e3266ceb3c3a44a155b9bbe5f3e0e1105b19dd45d3def76f020.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_4c089fbdb88e3b624a6f884d3ba1bf606f003bfcd3742376d0d353cd62181dc663aa3811a56361c3100de488fc4d6595a50de2b26f058921ba74f5f2c1b5be00.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_897ff6ac314c5f5e0f496c6af624bd9abf296a02cb5aeb850b9220b6dc3ce2fc4004cb02ed8b59d59d4b9c9d90f050d6eebc1d08ecaebab2f671f7d9367e6410.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_tablet_67d1e619e71d36ae00ddcf85ee18628bb4eb64fcb3d6119b463e75cb987013420a21136d19cd03e6634ccc01cfa9af4a357930e4cf6900953b7812efb4f249fb.js