https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_b964594d3d957944241961017b9eb19bf02834de44cce93d8e67dd306852dbe346167181e455e33d5268ea01d973d77bb056848546f31794f31a4c31a9da5aa3.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_23f1ae74c634d7e5e0a067c22b7a8c2d79c3ffd9a3b9395fc82c1b3b99635552b994f1f72f532f28ceaff1ea054ea026cd488cd62fa03a4ad91d212b5f3c5a72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_451c3884f51125f7687e5bb07cfab033c04cb7174c33f93213b2af4bad2af13cf48b92a7fa95fc86d7d436f355938a3ac50aa119cdb7c9b6d5a52815c3e6033e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bfff9e63e857e9ee612e292d4a6edf3ced64d6a756925c953a9d8f77845ff601eca64d73dfa48756b1a9f4a4d6de6127a273bcde16ddeb71a22383460f4e94b0.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4dd7e1d73ae5eda35ed5ad6aa965b612dbf483ece3ca50c1e8e30ad8dff1c66a160ed75e958e2db399661d229874783e0834ad813a479437035666b8e9e3386.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4fce0769137d4cd096989b0349bc3c2bbfca79ac311fdf714c41ab24d87551c7b49b756c8a8de090b0714a0ad0560e49fa532ba5a88875ea4afd78efac464df6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85cec8b07d60426b11040e471babca0d2f9c8dc87a9b56e06cad39828f7f67179e29609100f282a574872c9a93fb635b25416300eb4c97bc5a653d00cf6f8dbf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_6768e5a27d4d357347338621c0d20bd269b126d30eec796193390f2f530fbaea60af84130c46f9786114be65149e661e87d55c339219c90aa76396d7e5b734ef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_2acd6bdff3b680341e8c727da5169a647123eb8fd0a90253161b4c3af272c15d293bf9bb217008bb13f84d1910b0e166798001f8603b6c026d5c20a76c41d47c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_a626d54eadf4bb6bcc405bbda7ca06480740677ac412bf77b1946f396a7ea88420d743691d266e20bdde4c8c748adba09e45f24676549061c11c4bc133c796c6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_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 / Programming / Mastering PHP Closures: The Ultimate Guide

Mastering PHP Closures: The Ultimate Guide

Updated May 13, 2025 by Rana Ahsan 5 Comments ⏰ 8 minutes

php closure tutorial

Ever felt like your PHP code could be more elegant? Since PHP 5.3.0, closures have been a game-changer for PHP developers, yet I’m constantly surprised by how many programmers still don’t leverage their full potential.

In this guide, I’ll walk you through everything you need to know about PHP closures – from basic concepts to advanced implementation techniques that will absolutely revolutionize your code. Let’s dive in!

What Are PHP Closures?

PHP closures are anonymous functions that can capture variables from their surrounding scope. They’re incredibly versatile and powerful tools in your PHP arsenal.

But let’s break this down further…

Anonymous Functions: The Foundation

An anonymous function is exactly what it sounds like – a function without a name. If you’ve worked with JavaScript, this concept will feel familiar. Here’s a simple example:

$greet = function($name) {
    return "Hello, $name!";
};

echo $greet("Developer"); // Outputs: Hello, Developer!Code language: PHP (php)

Anonymous functions are perfect for quick, inline operations when defining a full function would be overkill. They’re commonly used for callbacks, one-time operations, and creating more readable code.

From Anonymous Functions to Closures

While anonymous functions provide functionality without formal naming, closures take this concept a step further. A closure is an object representation of an anonymous function with the added ability to capture and utilize variables from its surrounding scope.

In PHP, when you create an anonymous function, you’re actually getting an instance of the internal Closure class. This means you can use methods like bindTo() and bind() for some truly powerful operations.

Why PHP Closures Matter

The PHP ecosystem has evolved drastically, and closures have become essential in modern PHP development for several reasons:

  1. They enable functional programming patterns – Map, filter, reduce, and other functional approaches become more intuitive
  2. They improve code organization – Encapsulate related functionality in a clean, portable way
  3. They enhance framework capabilities – Modern frameworks like Laravel rely heavily on closures
  4. They boost performance – When used properly, they can optimize resource usage through techniques like lazy loading

Practical Applications of PHP Closures

Let’s explore some real-world applications that showcase the true power of closures.

1. Accessing Private Properties (Like Magic!)

One of the most mind-blowing capabilities of closures is accessing private variables of an object instance without modifying the class itself. Check this out:

class Database {
    private $connection = "MySQL Connection";
    private $credentials = ["username" => "admin", "password" => "secret"];
}

// Create a closure that will access private data
$getConnection = function() {
    return $this->connection;
};

// Bind the closure to a Database instance
$boundClosure = Closure::bind($getConnection, new Database(), 'Database');

// Execute and access the private property
echo $boundClosure(); // Outputs: MySQL ConnectionCode language: PHP (php)

This technique gives you incredible flexibility when working with third-party libraries or legacy code where you can’t modify the original classes.

2. Implementing Lazy Loading

Lazy loading is a design pattern that defers initialization of an object until the exact moment it’s needed. Closures make this incredibly easy to implement:

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// Define the logger but don't initialize it yet
$createLogger = function() {
    $log = new Logger('application');
    $log->pushHandler(new StreamHandler("app.log", Logger::DEBUG));
    return $log;
};

// Later in your code, when you actually need logging:
if ($errorCondition) {
    $logger = $createLogger(); <em>// Only now is the logger created</em>
    $logger->error("Something went wrong!");
}Code language: PHP (php)

This approach saves memory and processing time by ensuring heavy resources are only initialized when absolutely necessary – a must-have technique for performance optimization.

3. Using External Variables with the ‘use’ Keyword

To access variables from the parent scope, PHP provides the use keyword – an essential mechanism for creating true closures:

$prefix = "User_";
$id = 42;

$generateUsername = function() use ($prefix, $id) {
    return $prefix . $id;
};

echo $generateUsername(); // Outputs: User_42Code language: PHP (php)

It’s important to note that variables are captured by value at the time the closure is defined, not when it’s executed. This is a critical detail that often trips up beginners.

4. Creating Callback Functions for Array Operations

Closures shine when used as callbacks for PHP’s array functions. They make code more readable and maintainable:

$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// Filter even numbers
$evenNumbers = array_filter($numbers, function($number) {
    return $number % 2 === 0;
});

// Double each number
$doubled = array_map(function($number) {
    return $number * 2;
}, $numbers);

print_r($evenNumbers); // [2, 4, 6, 8, 10]
print_r($doubled);     // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]Code language: PHP (php)

Advanced PHP Closure Techniques

Now that we’ve covered the basics, let’s explore some advanced techniques that will truly elevate your PHP skills.

Recursive Closures

Yes, closures can call themselves recursively! This requires a bit of a trick since the closure needs to reference itself:

$factorial = function($n) use (&$factorial) {
    if ($n <= 1) {
        return 1;
    }
    return $n * $factorial($n - 1);
};

echo $factorial(5); // Outputs: 120Code language: PHP (php)

Notice how we pass the closure to itself using the use keyword with a reference (&). This creates a self-referential closure capable of recursion.

Method Chaining with Closures

Closures can return closures, enabling elegant method chaining:

$query = function($table) {
    $queryData = ['table' => $table];
    
    return [
        'where' => function($condition) use (&$queryData) {
            $queryData['condition'] = $condition;
            return [
                'get' => function() use ($queryData) {
                    return "SELECT * FROM {$queryData['table']} WHERE {$queryData['condition']}";
                }
            ];
        }
    ];
};

$sql = $query('users')['where']('age > 18')['get']();
echo $sql; // Outputs: SELECT * FROM users WHERE age > 18Code language: PHP (php)

This pattern enables fluent interfaces and can make complex operations more readable.

Dependency Injection with Closures

Closures provide an elegant way to implement dependency injection:

class Application {
    private $services = [];
    
    public function register($name, Closure $factory) {
        $this->services[$name] = $factory;
    }
    
    public function get($name) {
        if (isset($this->services[$name])) {
            return $this->services[$name]();
        }
        throw new Exception("Service not found: $name");
    }
}

$app = new Application();

// Register services
$app->register('database', function() {
    return new PDO('mysql:host=localhost;dbname=myapp', 'user', 'password');
});

$app->register('mailer', function() {
    $mailer = new Mailer();
    $mailer->setFrom('[email protected]');
    return $mailer;
});

// Use services
$db = $app->get('database');
$mailer = $app->get('mailer');Code language: PHP (php)

This pattern forms the foundation of many modern PHP dependency injection containers.

Common Pitfalls and How to Avoid Them

Despite their power, PHP closures come with a few gotchas that can trip up even experienced developers:

1. Variable Scope Confusion

Remember that variables captured by the use keyword are copied at definition time, not execution time:

$counter = 0;
$increment = function() use ($counter) {
    return ++$counter;
};

echo $increment(); // Outputs: 1
echo $increment(); // Still outputs: 1, not 2!Code language: PHP (php)

The solution is to pass by reference:

$counter = 0;
$increment = function() use (&$counter) {
    return ++$counter;
};

echo $increment(); // Outputs: 1
echo $increment(); // Now outputs: 2Code language: PHP (php)

2. Memory Leaks

Closures can inadvertently create circular references leading to memory leaks:

$object = new stdClass();
$object->closure = function() use ($object) {
    // This closure holds a reference to $object
    // and $object holds a reference to the closure
};Code language: PHP (php)

To prevent this, use weak references or nullify references when they’re no longer needed.

3. Performance Considerations

While closures are powerful, they do come with some overhead. For extremely performance-critical code paths that execute thousands of times, traditional functions might still have a slight edge.

Real-World Use Cases in Modern PHP Frameworks

PHP closures are foundational to modern frameworks. Here are some examples:

Laravel Route Definitions

Route::get('/users', function() {
    return User::all();
});Code language: PHP (php)

Symfony Event Listeners

$dispatcher->addListener('kernel.request', function(RequestEvent $event) {
    // Handle the request event
});Code language: PHP (php)

WordPress Hook System

add_action('init', function() {
    register_post_type('product', [
        'public' => true,
        'label' => 'Products'
    ]);
});Code language: PHP (php)

Conclusion: Embracing Closures in Your PHP Journey

PHP closures have evolved from a nice-to-have feature to an essential tool in modern PHP development. They enable cleaner code, more flexible designs, and robust application architecture.

Whether you’re building a small script or an enterprise application, mastering closures will absolutely transform your approach to problem-solving in PHP. They bridge the gap between procedural and functional programming paradigms, giving you the best of both worlds.

So don’t just read about them – start incorporating closures into your daily coding practice. Your future self will thank you for the cleaner, more maintainable codebase you’ll create!

FAQ About PHP Closures

Q: What PHP version introduced closures?

A: PHP 5.3.0 was the first version to support closures.

Q: Can I type-hint a closure parameter?

A: Yes! Use the Closure type:

function takesAClosure(Closure $callback) {
    $callback();
}Code language: PHP (php)

Q: How do I define a function that takes a closure as a parameter?

A: Just like any other parameter, but type-hint it with Closure:

function customArrayFilter(array $array, Closure $filterFunction) {
    $result = [];
    foreach ($array as $key => $value) {
        if ($filterFunction($value, $key)) {
            $result[$key] = $value;
        }
    }
    return $result;
}

// Usage
$numbers = [1, 2, 3, 4, 5];
$evenNumbers = customArrayFilter($numbers, function($number) {
    return $number % 2 === 0;
});Code language: PHP (php)

Q: Are closures slower than regular functions?

A: There is a small overhead, but in most real-world scenarios, the difference is negligible compared to the benefits they provide in code organization and flexibility.

Q: Can closures access the object’s $this variable?

A: Yes, as of PHP 5.4.0, closures can access $this when defined in the context of an object.

Ready to level up your PHP skill? Explore more PHP Tutorials

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: April 20, 2014 Filed Under: Programming Tagged With: 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. JBWebServices says

    February 15, 2016 at 1:40 PM

    I found this article very useful. I wasn’t aware of Lazy Loading or how it effected efficiency.

    Jamie @ http://www.redoma.digital

    Reply
  2. Samuel Fullman says

    February 28, 2017 at 6:53 AM

    Your first function example uses `echo` two times. You do not need to “echo $functionReference()” – you’d just need to call “$functionReference()” since the echo is already in the function

    Reply
    • Md Ali Ahsan Rana says

      May 9, 2017 at 9:14 PM

      thanks, updated

      Reply
  3. Dave says

    September 15, 2017 at 1:27 AM

    How would I define a function that takes a closure as a parameter? For example, imagine if PHP’s ‘array_filter’ didn’t exist…. how would you write that function?

    Reply

Trackbacks

  1. PHP Dependency Injection With Pimple - CODESAMPLEZ.COM says:
    October 12, 2024 at 11:30 AM

    […] you know about lazy loading with PHP closure, then you might wonder why we need another library when we can already do it. Yes, it’s true. […]

    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

  • JWT Decoder
  • JSON Formatter

Recently Published

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

what is service worker

What Is a Service Worker? A Beginner’s Guide

Footer

Subscribe via Email

Follow Us

  • Facebook
  • X
  • Pinterest
  • Tumblr

Explore By Topics

Python | AWS | PHP | C# | Javascript

Copyright © 2025

https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_c78b2dd7aef98119868f5d556a17422d995de368229cb371f7d679a3965b2da06f42600a04184f3fda3978d7823d86262dc3b8e8f917ee601c4c3bd169a493b7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_c402e38f1879c18090377fb6b73b15ac158be453ecda3a54456494fe8aba42b990c293bae5424e5643d52515ffc2067e0819995be8d07d5bba9107a96780775c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_ffc3511227531cc335353c54c3cbbaa11d0b80e5cb117478e144436c13cd05495b67af2e8950480ed54dbdabcdcef497c90fdb9814e88fe5978e1d56ce09f2cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d57da9abfef16337e5bc44c4fc6488de258896ce8a4d42e1b53467f701a60ad499eb48d8ae790779e6b4b29bd016713138cd7ba352bce5724e2d3fe05d638b27.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_edc0e9ef106cc9ef7edd8033c5c6fcff6dc09ee901fd07f4b90a16d9345b35a06534f639e018a64baaf9384eee1df305570c1ecad747f41b787b89f53839962b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_5a3aa28cd4eb24db3e3e2acd58230ff5cdc78120b94c2b118227d4c7806ecac03978e1a10404240314f66a3b82af8823768abb8b9eccc5003d198eb077ea12b8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_dccc492dbbfdac33d1411f9df909e849c7268fcf99b43007f278cde3a0adc0ae00e8cae5ec81cf255b9a6eae74e239ba1fa935572af77173219cb081f7d2327d.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_00bacf9e36181aac2b666d110cd9d82257f846766e7041b2d7b3c909b458982931ccc9b203e37098fbdfcf43ca359cf04e3824a724a6789fc204196d3a72ad29.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_259645f7837b2e3bbea4da322a28e9d966b3e0be06f6f147e120ed7acb1b3657b8d3cb198e86902299b01216de148c1f7c8f3cedf825d705ee5b9b749ddcff01.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_aa5a5d229b421633f4247380e1e8c0a4854f82efb35d13a5b07b7b8fbe22e98842a580f063e5965345a51c477a7f5c2585edf8dd7d896b2438dc61f91d8d970c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bb8058a9e234a7ffaa98891b1df7f6b8e67410e6984568b151daa05113b8c7f89d7b5918ae73f020998a16f7f5a087a13d6a9a5e5d7c301e2ca12fd9d1f8d177.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_647fb67570c6108fb10ae6785a1abdbecac99ffcf80351d0bef17c3cf783dce497b1895fcdaae997dacc72c359fbfb128cc1540dd7df56deb4961e1cd4b22636.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f7a298a0f1f754623fe3b30f6910ce2c1373f715450750bd7a391571812b00df1917e2be90df6c4efc54dbdfda8616278a574dea02ba2c7a31992768df8db334.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_df30604d5842ef29888c3c1881220dc6d3f8854666d94f0680c5f38aa643c5fb79b10eb9f10998d8856eb24ca265783195937434fd6c2bb8e4846df0277a7fb7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f17fe6fb0993f1703181d7ae9e9ea570f3d33a43afd6f2a4567daa1a6745698c7b8193dc72d50991d2dd87cd3dcf663959206607d193a9b57926d061a1f50aef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_945dcbab2c2a131f3c90f4fb91776b76066d589f84fb55bff25cd5d79a56218000616bfca1f0af9a74f32348693707af49e8fe624de8aa34f1e1c5b6a25709cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_65820d252e1b93596de6697fd5f02483f3e2524a0696c7d698b64745edb32bf5831a90e556842f5f88c8209766cc78ca3a41cf783d20236a9f90d4a7ea7b3e72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_7286884797a1210857e2a36f8ab46604b0034b6abf512380447a5763c873db6a72b8547f660053de0ea69faef1eb64878f39ff4b0ea86c963efab95764a3bf5b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_cbcf6c279ac6c6a25ae138bf964e64a5fd90d22dcdf8a53b6fe7b72cefa51063bfb0181a6e50dd2acdcae2795619887d1d83b10461e44e5103be756f2588d837.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_47965bc586b95810c925b9df3314e0c9a5cd121e70ca0831f87df0bc034695de4f83ecf2def86f737e14614ee138794473cf32cd3082a5d38db9dec0c1f266fa.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_12aa201cea075846d266536aa222d64d4088b851d87f55dac5e611b77add6826c8ebc6e82650fcd1a9e88a05a0072dedd195719c5f64cd4580a0acd8aee05d92.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_7859317dea28a85c983d7b2a933704b193600b52929d2d894deae21a5d78f1f9715214d4c2ed1b925e9183146806725621d586779705dea3b651260eb53a2f8a.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_0c4a01ae3c5230cd39ebbffccdf2b95cc3b06be96f7b913e968573cbd4e2bd74df72c6c98d877e4fe2e3d33913720931c5d970f6df1ba41f7848f65b129876fb.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d87ea86dd0e7ecdd5fe7a5bb67becf943e57c3add866b456034d51663d099031bd563e12f61fdccc044969adf938a8584ed22ccd401ab8b669e20e4f92fb54e8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_35311c3d71a3605fad4e1d6b50f3911311cdcc46418bdf56d6d0308a75a69585269ee7582a335e29989adf308fa1a81a10a2c2d4e257e9d680447a4996f6269e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4fc182ef03c12e9dcadd6febc3dbaa4a29134469057ca9e8ec0be2f2de29a494514ff4b59798e74debf26f78b2df2b3e2665c69b77035761fb463b783202915.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85c0f2769456e60153b0fd8364b82a035da53384f62de342d9bdca806f3f1ea56486919a00497a18d457949c82bf8bfacc4423fc332074ddf71a49a8fe628fff.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_67f99bef3678c549a14b5f2ff790cce6aba338dca29020755444231b45fa0f980f795e3658496ba70739a099b47b22bc2eab564343ac6132309de3adbbae3455.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_09eecfdd96206ed13830b4b93cfb2cc75cd38083671a34194437b5734b5bb38712209dc335b07e3266ceb3c3a44a155b9bbe5f3e0e1105b19dd45d3def76f020.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4c089fbdb88e3b624a6f884d3ba1bf606f003bfcd3742376d0d353cd62181dc663aa3811a56361c3100de488fc4d6595a50de2b26f058921ba74f5f2c1b5be00.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_897ff6ac314c5f5e0f496c6af624bd9abf296a02cb5aeb850b9220b6dc3ce2fc4004cb02ed8b59d59d4b9c9d90f050d6eebc1d08ecaebab2f671f7d9367e6410.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_67d1e619e71d36ae00ddcf85ee18628bb4eb64fcb3d6119b463e75cb987013420a21136d19cd03e6634ccc01cfa9af4a357930e4cf6900953b7812efb4f249fb.js