https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_b964594d3d957944241961017b9eb19bf02834de44cce93d8e67dd306852dbe346167181e455e33d5268ea01d973d77bb056848546f31794f31a4c31a9da5aa3.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_23f1ae74c634d7e5e0a067c22b7a8c2d79c3ffd9a3b9395fc82c1b3b99635552b994f1f72f532f28ceaff1ea054ea026cd488cd62fa03a4ad91d212b5f3c5a72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_451c3884f51125f7687e5bb07cfab033c04cb7174c33f93213b2af4bad2af13cf48b92a7fa95fc86d7d436f355938a3ac50aa119cdb7c9b6d5a52815c3e6033e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_bfff9e63e857e9ee612e292d4a6edf3ced64d6a756925c953a9d8f77845ff601eca64d73dfa48756b1a9f4a4d6de6127a273bcde16ddeb71a22383460f4e94b0.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_f4dd7e1d73ae5eda35ed5ad6aa965b612dbf483ece3ca50c1e8e30ad8dff1c66a160ed75e958e2db399661d229874783e0834ad813a479437035666b8e9e3386.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_4fce0769137d4cd096989b0349bc3c2bbfca79ac311fdf714c41ab24d87551c7b49b756c8a8de090b0714a0ad0560e49fa532ba5a88875ea4afd78efac464df6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_85cec8b07d60426b11040e471babca0d2f9c8dc87a9b56e06cad39828f7f67179e29609100f282a574872c9a93fb635b25416300eb4c97bc5a653d00cf6f8dbf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_6768e5a27d4d357347338621c0d20bd269b126d30eec796193390f2f530fbaea60af84130c46f9786114be65149e661e87d55c339219c90aa76396d7e5b734ef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_2acd6bdff3b680341e8c727da5169a647123eb8fd0a90253161b4c3af272c15d293bf9bb217008bb13f84d1910b0e166798001f8603b6c026d5c20a76c41d47c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_84f2e953d82190b9e93dc2f573c4288e3b9d5638b89eacfa6a49dd673310d90564fb3e4547aab7e44f6bb97477ba18de98e31a5a6b49b0e0b67a3f21d96424ab.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_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 / Database / Doctrine Relations Within Entities: The Complete Guide

Doctrine Relations Within Entities: The Complete Guide

Updated May 20, 2025 by Rana Ahsan 3 Comments ⏰ 9 minutes

Docrine Entity Relationship

When I first started working with Doctrine ORM in my PHP projects, I found the concept of entity relationships pretty confusing. There were so many annotations, configuration options, and terminology that felt overwhelming. But after years of building applications with Doctrine, I’ve come to appreciate how powerful these relationship mappings really are.

In this guide, I’ll walk you through everything you need to know about Doctrine relations. We’ll cover the fundamentals, explore different relationship types, and look at real-world code examples. Trust me, once you understand how to properly set up your entity relationships, your data modeling will become WAY more intuitive.

What Exactly Are Doctrine Relations?

Doctrine relations define how different entities in your database connect to each other. These relationships mirror the associations between your database tables, but with the added benefit of object-oriented programming principles.

Doctrine supports four main types of entity relationships:

  • OneToOne
  • OneToMany
  • ManyToOne
  • ManyToMany

Each relationship type has distinct characteristics and use cases that we’ll explore in detail.

Setting Up Your Environment

Before diving into relations, make sure you have Doctrine properly installed and configured. If you’re using Symfony, you’ll already have Doctrine integrated. Otherwise, you can install it using Composer:

composer require doctrine/ormCode language: JavaScript (javascript)

Your entity classes should extend the Doctrine Entity class and use annotations (or attributes in newer PHP versions) to define mappings.

Tip 💡: Completely new to Doctrine World? PHP Doctrine Guide For Beginners might be just what you need!

OneToOne Relations in Doctrine

OneToOne relationships are the simplest to understand. They connect one entity to exactly one other entity. This is like saying a Person has one Profile, or a User has one Address.

Let’s look at a practical example:

<?php
// src/Entity/User.php
namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
class User
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $username;

    /**
     * @ORM\OneToOne(targetEntity="Profile", inversedBy="user", cascade={"persist", "remove"})
     * @ORM\JoinColumn(name="profile_id", referencedColumnName="id")
     */
    private $profile;

    // Getters and setters...
}Code language: HTML, XML (xml)

And the related Profile entity:

<?php
// src/Entity/Profile.php
namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="profiles")
 */
class Profile
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $fullName;

    /**
     * @ORM\OneToOne(targetEntity="User", mappedBy="profile")
     */
    private $user;

    // Getters and setters...
}Code language: HTML, XML (xml)

Notice the mappedBy and inversedBy attributes? These tell Doctrine which side of the relationship is the owning side. In OneToOne relations, the entity with the inversedBy attribute (User in this case) is the owning side, while the entity with the mappedBy attribute (Profile) is the inverse side.

The owning side always contains the foreign key in the database, so in this example, the users table will have a profile_id column.

OneToMany and ManyToOne Relations

OneToMany and ManyToOne are actually two sides of the same relationship. When you define a OneToMany relation in one entity, you automatically define a ManyToOne relation in the other entity.

A perfect example would be a Blog and its Posts. A Blog can have many Posts, but each Post belongs to exactly one Blog.

Here’s how to implement this:

<?php
// src/Entity/Blog.php
namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="blogs")
 */
class Blog
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $name;

    /**
     * @ORM\OneToMany(targetEntity="Post", mappedBy="blog", cascade={"persist", "remove"})
     */
    private $posts;

    public function __construct()
    {
        $this->posts = new ArrayCollection();
    }

    public function getPosts(): Collection
    {
        return $this->posts;
    }

    public function addPost(Post $post): self
    {
        if (!$this->posts->contains($post)) {
            $this->posts[] = $post;
            $post->setBlog($this);
        }

        return $this;
    }

    // Other getters and setters...
}Code language: HTML, XML (xml)

And the Post entity:

<?php
// src/Entity/Post.php
namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="posts")
 */
class Post
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $title;

    /**
     * @ORM\ManyToOne(targetEntity="Blog", inversedBy="posts")
     * @ORM\JoinColumn(name="blog_id", referencedColumnName="id")
     */
    private $blog;

    public function getBlog(): ?Blog
    {
        return $this->blog;
    }

    public function setBlog(?Blog $blog): self
    {
        $this->blog = $blog;
        return $this;
    }

    // Other getters and setters...
}Code language: HTML, XML (xml)

In this case, the Post entity has the inversedBy attribute and is therefore the owning side of the relationship. The posts table will have a blog_id column.

One important thing to remember is that when you’re working with collections, you should always initialize them in the constructor to avoid null reference errors.

ManyToMany Relations

ManyToMany relations are a bit more complex because they require a join table in the database. A classic example is the relationship between Products and Categories – a Product can belong to many Categories, and a Category can contain many Products.

Here’s how to implement a ManyToMany relation:

<?php
// src/Entity/Product.php
namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="products")
 */
class Product
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $name;

    /**
     * @ORM\ManyToMany(targetEntity="Category", inversedBy="products")
     * @ORM\JoinTable(name="products_categories",
     *      joinColumns={@ORM\JoinColumn(name="product_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")}
     * )
     */
    private $categories;

    public function __construct()
    {
        $this->categories = new ArrayCollection();
    }

    public function getCategories(): Collection
    {
        return $this->categories;
    }

    public function addCategory(Category $category): self
    {
        if (!$this->categories->contains($category)) {
            $this->categories[] = $category;
            $category->addProduct($this);
        }

        return $this;
    }

    public function removeCategory(Category $category): self
    {
        if ($this->categories->contains($category)) {
            $this->categories->removeElement($category);
            $category->removeProduct($this);
        }

        return $this;
    }

    // Other getters and setters...
}Code language: HTML, XML (xml)

And the Category entity:

<?php
// src/Entity/Category.php
namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="categories")
 */
class Category
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $name;

    /**
     * @ORM\ManyToMany(targetEntity="Product", mappedBy="categories")
     */
    private $products;

    public function __construct()
    {
        $this->products = new ArrayCollection();
    }

    public function getProducts(): Collection
    {
        return $this->products;
    }

    public function addProduct(Product $product): self
    {
        if (!$this->products->contains($product)) {
            $this->products[] = $product;
        }

        return $this;
    }

    public function removeProduct(Product $product): self
    {
        if ($this->products->contains($product)) {
            $this->products->removeElement($product);
        }

        return $this;
    }

    // Other getters and setters...
}Code language: HTML, XML (xml)

In ManyToMany relations, you have to specify a join table with the @ORM\JoinTable annotation. This table will contain foreign keys to both entities.

Cascade Operations

One of the most powerful features of Doctrine relations is the ability to cascade operations. When you perform an operation on one entity, you can automatically apply the same operation to related entities.

The cascade option supports the following values:

  • persist: When you persist the owning entity, related entities are also persisted
  • remove: When you remove the owning entity, related entities are also removed
  • merge: When you merge the owning entity, related entities are also merged
  • detach: When you detach the owning entity, related entities are also detached
  • all: Applies all cascade operations

For example, if you want to automatically delete all Posts when a Blog is deleted, you would use the cascade={"remove"} option:

/**
 * @ORM\OneToMany(targetEntity="Post", mappedBy="blog", cascade={"persist", "remove"})
 */
private $posts;Code language: PHP (php)

Fetch Types: Lazy, Eager, and Extra Lazy

Doctrine provides different fetch types to control when related entities are loaded from the database:

  • Lazy (default): Related entities are loaded only when they are accessed
  • Eager: Related entities are loaded immediately when the owning entity is loaded
  • Extra Lazy: Only the count of related entities is loaded, and individual entities are loaded only when needed

You can specify the fetch type using the fetch option:

/**
 * @ORM\OneToMany(targetEntity="Post", mappedBy="blog", fetch="EAGER")
 */
private $posts;Code language: PHP (php)

I usually recommend sticking with lazy loading unless you have a specific reason to use eager loading, as it can significantly impact performance with large datasets.

Self-Referencing Relations

Sometimes you need entities that reference themselves, like in a hierarchical structure. For example, a Category might have child Categories, or an Employee might have a Manager who is also an Employee.

Here’s how to implement a self-referencing relation:

<?php
// src/Entity/Category.php
namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="categories")
 */
class Category
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $name;

    /**
     * @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
     * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
     */
    private $parent;

    /**
     * @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
     */
    private $children;

    public function __construct()
    {
        $this->children = new ArrayCollection();
    }

    // Getters and setters...
}Code language: HTML, XML (xml)

Bidirectional vs. Unidirectional Relations

In Doctrine, relations can be bidirectional or unidirectional:

  • Bidirectional: Both entities have references to each other
  • Unidirectional: Only one entity has a reference to the other

Most of the examples I’ve shown so far are bidirectional. For a unidirectional relation, you would simply omit the inversedBy or mappedBy attribute:

/**
 * @ORM\ManyToOne(targetEntity="Blog")
 * @ORM\JoinColumn(name="blog_id", referencedColumnName="id")
 */
private $blog;Code language: PHP (php)

Best Practices for Doctrine Relations

Here are some key best practices I’ve learned from working with Doctrine relations:

  1. Always update both sides of bidirectional relationships. Create helper methods like addPost() and removePost() that handle this for you.
  2. Initialize collections in constructors. This prevents null reference errors.
  3. Consider performance implications. Large collections can cause memory issues, so use pagination or extra lazy loading when appropriate.
  4. Use cascade operations carefully. Think about what should happen to related entities when the parent entity is modified.
  5. Be mindful of orphan removal. The orphanRemoval=true option will delete related entities when they’re removed from a collection.

Conclusion

Mastering Doctrine relations is essential for building robust PHP applications. We’ve covered the basics of OneToOne, OneToMany, ManyToOne, and ManyToMany relationships, along with important concepts like cascade operations and fetch types.

Remember that good entity design mirrors your business domain. Take time to think about the relationships between your entities and how they map to the real-world concepts they represent.

If you have any questions about implementing Doctrine relations in your projects, feel free to leave a comment below!

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: May 5, 2013 Filed Under: Database, Development Tagged With: doctrine, 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. Peter Furesz says

    September 28, 2015 at 5:36 PM

    Nice tutorial! Thank you, great job!

    Reply
  2. Rakib Ahmed Shovon says

    November 14, 2015 at 1:25 AM

    can u tell something about entity owner side and inverse side ?

    Reply
  3. vahid says

    November 18, 2015 at 5:39 AM

    Hi Thank you for your tutorial.
    i have type table that have Many-to-Many relationship with category and many to many relation table (categoryOftype table) have One-to-Many relationship with items table how i do this with entity relationship in doctrine 2 .
    tanks

    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 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

Dynamic Typing In Python

Dynamic Typing in Python: A Comprehensive Guide For Beginners

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_mobile_501821a634604c17bd7340f6a052ef83b6eea42990de42fe36bc26917a6075abec5858c8f82c4915f7aace87df407da7c47e10927ecfaf4d850e9cf5258f71a7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_c402e38f1879c18090377fb6b73b15ac158be453ecda3a54456494fe8aba42b990c293bae5424e5643d52515ffc2067e0819995be8d07d5bba9107a96780775c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_ffc3511227531cc335353c54c3cbbaa11d0b80e5cb117478e144436c13cd05495b67af2e8950480ed54dbdabcdcef497c90fdb9814e88fe5978e1d56ce09f2cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_d57da9abfef16337e5bc44c4fc6488de258896ce8a4d42e1b53467f701a60ad499eb48d8ae790779e6b4b29bd016713138cd7ba352bce5724e2d3fe05d638b27.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_edc0e9ef106cc9ef7edd8033c5c6fcff6dc09ee901fd07f4b90a16d9345b35a06534f639e018a64baaf9384eee1df305570c1ecad747f41b787b89f53839962b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_bc2182bb3de51847c8685df18692deda654dbf90fb01b503eb1bb0b68b879a051b91f30a9210ed0b2ba47c730db14b159cd9391ffdcd7117de397edd18366360.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_dccc492dbbfdac33d1411f9df909e849c7268fcf99b43007f278cde3a0adc0ae00e8cae5ec81cf255b9a6eae74e239ba1fa935572af77173219cb081f7d2327d.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_00bacf9e36181aac2b666d110cd9d82257f846766e7041b2d7b3c909b458982931ccc9b203e37098fbdfcf43ca359cf04e3824a724a6789fc204196d3a72ad29.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_a2eea34282c720b65b34c2311f738f98785caf13cf23bad2a0bc99cfd5ac08efbf8c98195fbdd78ec5547b29609bba52c2e5a29c8f8e364afd5694131a22c09c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_aa5a5d229b421633f4247380e1e8c0a4854f82efb35d13a5b07b7b8fbe22e98842a580f063e5965345a51c477a7f5c2585edf8dd7d896b2438dc61f91d8d970c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_bb8058a9e234a7ffaa98891b1df7f6b8e67410e6984568b151daa05113b8c7f89d7b5918ae73f020998a16f7f5a087a13d6a9a5e5d7c301e2ca12fd9d1f8d177.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_647fb67570c6108fb10ae6785a1abdbecac99ffcf80351d0bef17c3cf783dce497b1895fcdaae997dacc72c359fbfb128cc1540dd7df56deb4961e1cd4b22636.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_f7a298a0f1f754623fe3b30f6910ce2c1373f715450750bd7a391571812b00df1917e2be90df6c4efc54dbdfda8616278a574dea02ba2c7a31992768df8db334.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_df30604d5842ef29888c3c1881220dc6d3f8854666d94f0680c5f38aa643c5fb79b10eb9f10998d8856eb24ca265783195937434fd6c2bb8e4846df0277a7fb7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_f17fe6fb0993f1703181d7ae9e9ea570f3d33a43afd6f2a4567daa1a6745698c7b8193dc72d50991d2dd87cd3dcf663959206607d193a9b57926d061a1f50aef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_945dcbab2c2a131f3c90f4fb91776b76066d589f84fb55bff25cd5d79a56218000616bfca1f0af9a74f32348693707af49e8fe624de8aa34f1e1c5b6a25709cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_65820d252e1b93596de6697fd5f02483f3e2524a0696c7d698b64745edb32bf5831a90e556842f5f88c8209766cc78ca3a41cf783d20236a9f90d4a7ea7b3e72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_7286884797a1210857e2a36f8ab46604b0034b6abf512380447a5763c873db6a72b8547f660053de0ea69faef1eb64878f39ff4b0ea86c963efab95764a3bf5b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_cbcf6c279ac6c6a25ae138bf964e64a5fd90d22dcdf8a53b6fe7b72cefa51063bfb0181a6e50dd2acdcae2795619887d1d83b10461e44e5103be756f2588d837.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_47965bc586b95810c925b9df3314e0c9a5cd121e70ca0831f87df0bc034695de4f83ecf2def86f737e14614ee138794473cf32cd3082a5d38db9dec0c1f266fa.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_12aa201cea075846d266536aa222d64d4088b851d87f55dac5e611b77add6826c8ebc6e82650fcd1a9e88a05a0072dedd195719c5f64cd4580a0acd8aee05d92.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_eaa93529c38925eb07368c361382956fbd910b5106b8589fa7e2e15a59c46437de3698d50ec4754bc45e6dfac47b3f41cc4c6112d7ede071ca8950385d4987dc.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_58127cde3907eab590ede8cd959e992fbddf2c52ff5cd41fbca7d7898272b2c50f33122c959ca3c07d207b5a96d83adce615bb5a5f241b38d07c02689d694dc4.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_d87ea86dd0e7ecdd5fe7a5bb67becf943e57c3add866b456034d51663d099031bd563e12f61fdccc044969adf938a8584ed22ccd401ab8b669e20e4f92fb54e8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_35311c3d71a3605fad4e1d6b50f3911311cdcc46418bdf56d6d0308a75a69585269ee7582a335e29989adf308fa1a81a10a2c2d4e257e9d680447a4996f6269e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_f4fc182ef03c12e9dcadd6febc3dbaa4a29134469057ca9e8ec0be2f2de29a494514ff4b59798e74debf26f78b2df2b3e2665c69b77035761fb463b783202915.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_85c0f2769456e60153b0fd8364b82a035da53384f62de342d9bdca806f3f1ea56486919a00497a18d457949c82bf8bfacc4423fc332074ddf71a49a8fe628fff.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_67f99bef3678c549a14b5f2ff790cce6aba338dca29020755444231b45fa0f980f795e3658496ba70739a099b47b22bc2eab564343ac6132309de3adbbae3455.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_09eecfdd96206ed13830b4b93cfb2cc75cd38083671a34194437b5734b5bb38712209dc335b07e3266ceb3c3a44a155b9bbe5f3e0e1105b19dd45d3def76f020.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_4c089fbdb88e3b624a6f884d3ba1bf606f003bfcd3742376d0d353cd62181dc663aa3811a56361c3100de488fc4d6595a50de2b26f058921ba74f5f2c1b5be00.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_897ff6ac314c5f5e0f496c6af624bd9abf296a02cb5aeb850b9220b6dc3ce2fc4004cb02ed8b59d59d4b9c9d90f050d6eebc1d08ecaebab2f671f7d9367e6410.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_mobile_67d1e619e71d36ae00ddcf85ee18628bb4eb64fcb3d6119b463e75cb987013420a21136d19cd03e6634ccc01cfa9af4a357930e4cf6900953b7812efb4f249fb.js