{"id":35599,"date":"2022-05-21T07:57:30","date_gmt":"2022-05-21T07:57:30","guid":{"rendered":"https:\/\/quera.org\/blog\/?p=35599"},"modified":"2024-02-04T15:57:16","modified_gmt":"2024-02-04T12:27:16","slug":"repository-design-pattern","status":"publish","type":"post","link":"https:\/\/quera.org\/blog\/repository-design-pattern\/","title":{"rendered":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository"},"content":{"rendered":"\n<p>\u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc\u200c\u062f\u0627\u0646\u06cc\u062f\u060c \u0627\u0644\u06af\u0648\u0647\u0627 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627\u06cc\u062c \u062f\u0631 \u0637\u0631\u0627\u062d\u06cc \u0634\u06cc\u0621\u06af\u0631\u0627 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc <strong>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong> \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645.<\/p>\n\n\n\n<p><strong>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong>\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u200c\u0647\u0627\u06cc \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a \u0648 \u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0645\u062e\u0627\u0632\u0646\u06cc \u0648\u0627\u0633\u0637 \u0628\u06cc\u0646 \u0645\u0646\u0637\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062e\u0627\u0632\u0646 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 (\u0630\u062e\u06cc\u0631\u0647\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0648\u2026) \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f.<\/p>\n\n\n\n<p>\u062e\u0648\u0628 \u0627\u0633\u062a \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0635\u0644 <a dideo-checked=\"true\" class=\"global-rtl\" href=\"https:\/\/en.wikipedia.org\/wiki\/Separation_of_concerns\">\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0631\u0641\u062a\u0627\u0631\u200c\u0647\u0627 (\u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627)<\/a> (Sepration of Concerns \u06cc\u0627 SOC) \u06cc\u0627 \u0647\u0645\u0627\u0646 \u0645\u0627\u0698\u0648\u0644\u0627\u0631\u06cc\u062a\u06cc \u062f\u0631 \u0645\u0647\u0646\u062f\u0633\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0646\u06cc\u0632 \u0645\u0637\u0631\u062d \u0634\u0648\u062f. \u0637\u0628\u0642 \u0627\u06cc\u0646 \u0627\u0635\u0644\u060c \u0645\u0646\u0637\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u06a9\u0647 \u0647\u0631\u06a9\u062f\u0627\u0645 \u0642\u0627\u0628\u0644\u06cc\u062a\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u062f\u0646\u0638\u0631\u0645\u0627\u0646 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u062a\u0642\u0633\u06cc\u0645 \u0634\u0648\u062f. \u0637\u0628\u0642 \u062a\u0639\u0631\u06cc\u0641 \u06af\u0641\u062a\u0647\u200c\u0634\u062f\u0647 \u0627\u0632 <strong>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong>\u060c \u0648\u0627\u0636\u062d \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u0628\u0647\u200c\u062e\u0648\u0628\u06cc \u0627\u0632 \u0627\u0635\u0644 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0631\u0641\u062a\u0627\u0631\u200c\u0647\u0627 \u062a\u0628\u0639\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p>\u0628\u0647\u200c\u0637\u0648\u0631 \u06a9\u0644\u06cc \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u062f\u0627\u0631\u062f:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"520\" src=\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/repo.png\" alt=\"\" class=\"wp-image-35601\" srcset=\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/repo.png 473w, https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/repo-273x300.png 273w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure>\n<\/div>\n\n\n<p>\u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0647\u0645 \u0645\u0634\u062e\u0635 \u0627\u0633\u062a\u060c \u0628\u062f\u0648\u0646 Repository \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u062f\u0627\u062f\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0648\u0644\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Repository \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u062a\u0648\u0633\u0637 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc Repository \u0635\u0648\u0631\u062a \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u062f\u0631 \u0632\u0628\u0627\u0646 PHP \u0648 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 Laravel \u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0631\u062f\u0627\u062e\u062a. \u0639\u0644\u062a \u0627\u0646\u062a\u062e\u0627\u0628 \u0627\u06cc\u0646 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0628\u06cc\u0634\u062a\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f:<a href=\"https:\/\/quera.org\/blog\/what-is-design-pattern\/\"> \u062f\u06cc\u0632\u0627\u06cc\u0646 \u067e\u062a\u0631\u0646 \u0686\u06cc\u0633\u062a \u061f \u2013 \u0647\u0631\u0686\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631\u0645\u0648\u0631\u062f \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc (Design Pattern) \u0628\u062f\u0627\u0646\u06cc\u062f<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-\u06cc\u06a9-\u0645\u062b\u0627\u0644-\u0639\u0645\u0644\u06cc-\u0627\u0632-\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-repository\" style=\"font-size:18px\">\u06cc\u06a9 <strong>\u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong><\/h2>\n\n\n\n<p>\u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u06af\u0641\u062a\u0647 \u0634\u062f\u060c \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc <strong>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong> \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0639\u0644\u062a \u0627\u0646\u062a\u062e\u0627\u0628 \u0627\u06cc\u0646 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0632 \u0627\u0644\u06af\u0648\u06cc Active Record \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u0628\u0647\u200c\u0637\u0648\u0631 \u06a9\u0644\u06cc \u0645\u0646\u0637\u0642 \u062a\u0645\u0627\u0645 \u0645\u0648\u0627\u0631\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u062a\u0645\u0631\u06a9\u0632 \u062f\u0631 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f \u0648 \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0628\u0627 <strong>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong> \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0622\u0646 \u0631\u0627 \u062c\u062f\u0627 \u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u0646\u0645\u0648\u0646\u0647\u200c\u06cc \u0633\u0627\u062f\u0647\u200c\u0627\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u06cc Repository \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n\n\n\n<p>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0633\u0627\u062e\u062a\u0627\u0631 \u0641\u0627\u06cc\u0644\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u062f\u0647\u06cc\u0645:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">app\n\u251c\u2500\u2500 Repository\n\u2502   \u251c\u2500\u2500 Eloquent\n\u2502   \u2502   \u251c\u2500\u2500 BaseRepository.php\n\u2502   \u2502   \u2514\u2500\u2500 UserRepository.php\n\u251c\u2500\u2500 EloquentRepositoryInterface.php\n\u2514\u2500\u2500 UserRepositoryInterface.php<\/code><\/pre>\n\n\n\n<p>\u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633\u200c\u0647\u0627\u06cc\u06cc \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0628\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc\u06cc \u0628\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633\u200c\u0647\u0627 \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645. BaseRepository \u0645\u062e\u0632\u0646\u06cc \u0627\u0633\u062a \u0634\u0627\u0645\u0644 \u062a\u0645\u0627\u0645 \u0645\u062a\u062f\u200c\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u0645\u062e\u0627\u0632\u0646 \u0645\u062e\u062a\u0644\u0641 \u06a9\u0647 EloquentRepositoryInterface \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\nnamespace App\\Repository;\nuse Illuminate\\Database\\Eloquent\\Model;\ninterface EloquentRepositoryInterface\n{\n   public function create(array $attributes): Model;\n\n   public function find($id): ?Model;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php   \nnamespace App\\Repository\\Eloquent;   \nuse App\\Repository\\EloquentRepositoryInterface; \nuse Illuminate\\Database\\Eloquent\\Model;   \nclass BaseRepository implements EloquentRepositoryInterface \n{        \n    protected $model;       \n    \n    public function __construct(Model $model)     \n    {         \n        $this-&gt;model = $model;\n    }\n\n    public function create(array $attributes): Model\n    {\n        return $this-&gt;model-&gt;create($attributes);\n    }\n\n    public function find($id): ?Model\n    {\n        return $this-&gt;model-&gt;find($id);\n    }\n}<\/code><\/pre>\n\n\n\n<p>\u062d\u0627\u0644 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u06a9\u0627\u0645\u0644 \u06a9\u0646\u06cc\u0645:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\nnamespace App\\Repository;\nuse App\\Model\\User;\nuse Illuminate\\Support\\Collection;\ninterface UserRepositoryInterface\n{\n   public function all(): Collection;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\nnamespace App\\Repository\\Eloquent;\nuse App\\Model\\User;\nuse App\\Repository\\UserRepositoryInterface;\nuse Illuminate\\Support\\Collection;\nclass UserRepository extends BaseRepository implements UserRepositoryInterface\n{\n   public function __construct(User $model)\n   {\n       parent::__construct($model);\n   }\n\n   public function all(): Collection\n   {\n       return $this-&gt;model-&gt;all();    \n   }\n}<\/code><\/pre>\n\n\n\n<p>\u0648\u0627\u0636\u062d \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u06a9\u0627\u0645\u0644 \u0634\u062f\u0646 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u060c \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u06cc \u0645\u0648\u0631\u062f\u0646\u0638\u0631\u0645\u0627\u0646 \u0628\u062f\u0648\u0646 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u0647 \u0633\u0627\u06cc\u0631 \u0642\u0633\u0645\u062a\u200c\u0647\u0627 \u062a\u06a9\u0645\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<p>\u062f\u0631 \u06af\u0627\u0645 \u0622\u062e\u0631 \u0628\u0627\u06cc\u062f \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0627\u0632 \u0648\u062c\u0648\u062f \u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0645\u0637\u0644\u0639 \u06a9\u0646\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u067e\u0631\u0648\u0627\u06cc\u062f\u0631\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">php artisan make:provider RepositoryServiceProvider<\/code><\/pre>\n\n\n\n<p>\u0648 \u0628\u0639\u062f \u0627\u0632 \u0631\u062c\u06cc\u0633\u062a\u0631 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u067e\u0631\u0648\u0627\u06cc\u062f\u0631:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php \nnamespace App\\Providers; \nuse App\\Repository\\EloquentRepositoryInterface; \nuse App\\Repository\\UserRepositoryInterface; \nuse App\\Repository\\Eloquent\\UserRepository; \nuse App\\Repository\\Eloquent\\BaseRepository; \nuse Illuminate\\Support\\ServiceProvider; \nclass RepositoryServiceProvider extends ServiceProvider \n{ \n   public function register() \n   { \n       $this-&gt;app-&gt;bind(EloquentRepositoryInterface::class, BaseRepository::class);\n       $this-&gt;app-&gt;bind(UserRepositoryInterface::class, UserRepository::class);\n   }\n}<\/code><\/pre>\n\n\n\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062e\u0627\u0632\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">class UsersController extends Controller\n{\n   private $userRepository;\n  \n   public function __construct(UserRepositoryInterface $userRepository)\n   {\n       $this-&gt;userRepository = $userRepository;\n   }\n\n   public function index()\n   {\n       $users = $this-&gt;userRepository-&gt;all();\n\n       return view('users.index', [\n           'users' =&gt; $users\n       ]);\n   }\n}<\/code><\/pre>\n\n\n\n<p>\u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u06af\u0641\u062a\u0647 \u0634\u062f\u060c \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0634\u06a9\u0644 \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647\u200c\u0627\u06cc \u0627\u0632 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc <strong>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong> \u0628\u0648\u062f\u060c \u0627\u0645\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0635\u0646\u0639\u062a\u060c \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u06a9\u0645\u06a9\u200c \u0634\u0627\u06cc\u0627\u0646\u06cc \u062f\u0631 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0628\u0631\u0648\u0632 \u06a9\u062f\u200c\u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc\u060c \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f (Reusability) \u0648\u2026 \u0628\u0647 \u0634\u0645\u0627 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.&nbsp;<\/p>\n\n\n\n<p>\u062e\u0648\u0628 \u0627\u0633\u062a \u062f\u0631 \u0627\u0646\u062a\u0647\u0627 \u0645\u062b\u0627\u0644\u06cc \u06a9\u0648\u062a\u0627\u0647 \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0641\u0627\u0631\u0634\u0627\u062a \u0628\u0628\u06cc\u0646\u06cc\u0645:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">interface OrderRepositoryInterface \n{\n    public function getAllOrders();\n    public function getOrderById($orderId);\n    public function deleteOrder($orderId);\n    public function createOrder(array $orderDetails);\n    public function updateOrder($orderId, array $newDetails);\n    public function getFulfilledOrders();\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">class OrderRepository implements OrderRepositoryInterface \n{\n    public function getAllOrders() \n    {\n        return Order::all();\n    }\n\n    public function getOrderById($orderId) \n    {\n        return Order::findOrFail($orderId);\n    }\n\n    public function deleteOrder($orderId) \n    {\n        Order::destroy($orderId);\n    }\n\n    public function createOrder(array $orderDetails) \n    {\n        return Order::create($orderDetails);\n    }\n\n    public function updateOrder($orderId, array $newDetails) \n    {\n        return Order::whereId($orderId)-&gt;update($newDetails);\n    }\n\n    public function getFulfilledOrders() \n    {\n        return Order::where('is_fulfilled', true);\n    }\n}<\/code><\/pre>\n\n\n\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c <strong>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository<\/strong> \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u0628\u06cc\u0627\u0646 \u0634\u062f. \u0628\u0631\u0627\u06cc \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631 \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062f\u0648\u0631\u0647\u200c\u0647\u0627\u06cc <a href=\"https:\/\/quera.org\/college\/land\/register\/5310\/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%85%D8%AD%D9%88%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88%D8%A8-%D8%A8%D8%A7-php\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0622\u0645\u0648\u0632\u0634 \u067e\u06cc \u0627\u0686 \u067e\u06cc<\/a> \u0648 <a href=\"https:\/\/quera.org\/college\/land\/register\/7615\/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0622\u0645\u0648\u0632\u0634 \u0644\u0627\u0631\u0627\u0648\u0644<\/a> \u06a9\u0648\u0626\u0631\u0627 \u06a9\u0627\u0644\u062c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0634\u06cc\u0621\u06af\u0631\u0627\u06cc\u06cc \u0648 \u0627\u0635\u0648\u0644 \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u0645\u0647\u0646\u062f\u0633\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0622\u0634\u0646\u0627 \u0634\u0648\u06cc\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc\u200c\u062f\u0627\u0646\u06cc\u062f\u060c \u0627\u0644\u06af\u0648\u0647\u0627 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627\u06cc\u062c \u062f\u0631 \u0637\u0631\u0627\u062d\u06cc \u0634\u06cc\u0621\u06af\u0631\u0627 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc&#8230;<\/p>\n","protected":false},"author":14,"featured_media":35752,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46,48,65,78,70,298],"tags":[],"class_list":["post-35599","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developer","category-technology","category-php","category-backend","category-laravel","category-plus"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository - \u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af<\/title>\n<meta name=\"description\" content=\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u200c\u0647\u0627\u06cc \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a \u0648 \u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/quera.org\/blog\/repository-design-pattern\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository - \u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af\" \/>\n<meta property=\"og:description\" content=\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u200c\u0647\u0627\u06cc \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a \u0648 \u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646\" \/>\n<meta property=\"og:url\" content=\"https:\/\/quera.org\/blog\/repository-design-pattern\/\" \/>\n<meta property=\"og:site_name\" content=\"\u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-21T07:57:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-04T12:27:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u062f\u0642\u06cc\u0642\u0647\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/\"},\"author\":{\"name\":\"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc\",\"@id\":\"https:\/\/quera.org\/blog\/#\/schema\/person\/74b7d6112dd94e279e8f38ef221f24f8\"},\"headline\":\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\",\"datePublished\":\"2022-05-21T07:57:30+00:00\",\"dateModified\":\"2024-02-04T12:27:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/\"},\"wordCount\":27,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/quera.org\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg\",\"articleSection\":[\"\u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\",\"\u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc\",\"\u067e\u06cc \u0627\u0686 \u067e\u06cc\",\"\u0628\u06a9\u200c\u0627\u0646\u062f\",\"\u0644\u0627\u0631\u0627\u0648\u0644\",\"\u0622\u0645\u0648\u0632\u0634\u200c\u067e\u0644\u0627\u0633\"],\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/quera.org\/blog\/repository-design-pattern\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/\",\"url\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/\",\"name\":\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository - \u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af\",\"isPartOf\":{\"@id\":\"https:\/\/quera.org\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg\",\"datePublished\":\"2022-05-21T07:57:30+00:00\",\"dateModified\":\"2024-02-04T12:27:16+00:00\",\"description\":\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u200c\u0647\u0627\u06cc \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a \u0648 \u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646\",\"breadcrumb\":{\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/quera.org\/blog\/repository-design-pattern\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage\",\"url\":\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg\",\"contentUrl\":\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg\",\"width\":1200,\"height\":800,\"caption\":\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/quera.org\/blog\/repository-design-pattern\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u062e\u0627\u0646\u0647\",\"item\":\"https:\/\/quera.org\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\",\"item\":\"https:\/\/quera.org\/blog\/category\/developer\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc\",\"item\":\"https:\/\/quera.org\/blog\/category\/developer\/technology\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u0628\u06a9\u200c\u0627\u0646\u062f\",\"item\":\"https:\/\/quera.org\/blog\/category\/developer\/technology\/backend\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"\u0644\u0627\u0631\u0627\u0648\u0644\",\"item\":\"https:\/\/quera.org\/blog\/category\/developer\/technology\/backend\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/quera.org\/blog\/#website\",\"url\":\"https:\/\/quera.org\/blog\/\",\"name\":\"\u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af\",\"description\":\"\u0647\u0645\u0647\u200c\u0686\u06cc\u0632 \u062f\u0631\u0628\u0627\u0631\u0647 \u062f\u0646\u06cc\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc\",\"publisher\":{\"@id\":\"https:\/\/quera.org\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/quera.org\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fa-IR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/quera.org\/blog\/#organization\",\"name\":\"\u06a9\u0648\u0626\u0631\u0627\",\"url\":\"https:\/\/quera.org\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/quera.org\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/09\/logo-quera22-e1574766184574.png\",\"contentUrl\":\"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/09\/logo-quera22-e1574766184574.png\",\"width\":300,\"height\":300,\"caption\":\"\u06a9\u0648\u0626\u0631\u0627\"},\"image\":{\"@id\":\"https:\/\/quera.org\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.instagram.com\/quera.ir\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/quera.org\/blog\/#\/schema\/person\/74b7d6112dd94e279e8f38ef221f24f8\",\"name\":\"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/quera.org\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4eba87921b98361599d2e2c77313442298fbd2048b5fda1b709c4d1e189b7068?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4eba87921b98361599d2e2c77313442298fbd2048b5fda1b709c4d1e189b7068?s=96&d=mm&r=g\",\"caption\":\"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository - \u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af","description":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u200c\u0647\u0627\u06cc \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a \u0648 \u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/quera.org\/blog\/repository-design-pattern\/","og_locale":"fa_IR","og_type":"article","og_title":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository - \u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af","og_description":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u200c\u0647\u0627\u06cc \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a \u0648 \u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646","og_url":"https:\/\/quera.org\/blog\/repository-design-pattern\/","og_site_name":"\u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af","article_published_time":"2022-05-21T07:57:30+00:00","article_modified_time":"2024-02-04T12:27:16+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg","type":"image\/jpeg"}],"author":"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc","twitter_card":"summary_large_image","twitter_misc":{"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a":"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc","\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646":"4 \u062f\u0642\u06cc\u0642\u0647"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/#article","isPartOf":{"@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/"},"author":{"name":"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc","@id":"https:\/\/quera.org\/blog\/#\/schema\/person\/74b7d6112dd94e279e8f38ef221f24f8"},"headline":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository","datePublished":"2022-05-21T07:57:30+00:00","dateModified":"2024-02-04T12:27:16+00:00","mainEntityOfPage":{"@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/"},"wordCount":27,"commentCount":1,"publisher":{"@id":"https:\/\/quera.org\/blog\/#organization"},"image":{"@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage"},"thumbnailUrl":"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg","articleSection":["\u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647","\u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc","\u067e\u06cc \u0627\u0686 \u067e\u06cc","\u0628\u06a9\u200c\u0627\u0646\u062f","\u0644\u0627\u0631\u0627\u0648\u0644","\u0622\u0645\u0648\u0632\u0634\u200c\u067e\u0644\u0627\u0633"],"inLanguage":"fa-IR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/quera.org\/blog\/repository-design-pattern\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/","url":"https:\/\/quera.org\/blog\/repository-design-pattern\/","name":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository - \u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af","isPartOf":{"@id":"https:\/\/quera.org\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage"},"image":{"@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage"},"thumbnailUrl":"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg","datePublished":"2022-05-21T07:57:30+00:00","dateModified":"2024-02-04T12:27:16+00:00","description":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u200c\u0647\u0627\u06cc \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0633\u062a \u0648 \u0647\u0645\u0627\u0646 \u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646","breadcrumb":{"@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/#breadcrumb"},"inLanguage":"fa-IR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/quera.org\/blog\/repository-design-pattern\/"]}]},{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/#primaryimage","url":"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg","contentUrl":"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/05\/\u0627\u0644\u06af\u0648\u06cc-\u0637\u0631\u0627\u062d\u06cc-Repository.jpg","width":1200,"height":800,"caption":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository"},{"@type":"BreadcrumbList","@id":"https:\/\/quera.org\/blog\/repository-design-pattern\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u062e\u0627\u0646\u0647","item":"https:\/\/quera.org\/blog\/"},{"@type":"ListItem","position":2,"name":"\u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647","item":"https:\/\/quera.org\/blog\/category\/developer\/"},{"@type":"ListItem","position":3,"name":"\u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc","item":"https:\/\/quera.org\/blog\/category\/developer\/technology\/"},{"@type":"ListItem","position":4,"name":"\u0628\u06a9\u200c\u0627\u0646\u062f","item":"https:\/\/quera.org\/blog\/category\/developer\/technology\/backend\/"},{"@type":"ListItem","position":5,"name":"\u0644\u0627\u0631\u0627\u0648\u0644","item":"https:\/\/quera.org\/blog\/category\/developer\/technology\/backend\/laravel\/"},{"@type":"ListItem","position":6,"name":"\u0627\u0644\u06af\u0648\u06cc \u0637\u0631\u0627\u062d\u06cc Repository"}]},{"@type":"WebSite","@id":"https:\/\/quera.org\/blog\/#website","url":"https:\/\/quera.org\/blog\/","name":"\u06a9\u0648\u0626\u0631\u0627\u200c\u0628\u0644\u0627\u06af","description":"\u0647\u0645\u0647\u200c\u0686\u06cc\u0632 \u062f\u0631\u0628\u0627\u0631\u0647 \u062f\u0646\u06cc\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc","publisher":{"@id":"https:\/\/quera.org\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/quera.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fa-IR"},{"@type":"Organization","@id":"https:\/\/quera.org\/blog\/#organization","name":"\u06a9\u0648\u0626\u0631\u0627","url":"https:\/\/quera.org\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/quera.org\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/09\/logo-quera22-e1574766184574.png","contentUrl":"https:\/\/quera.org\/blog\/wp-content\/uploads\/2022\/09\/logo-quera22-e1574766184574.png","width":300,"height":300,"caption":"\u06a9\u0648\u0626\u0631\u0627"},"image":{"@id":"https:\/\/quera.org\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/quera.ir\/"]},{"@type":"Person","@id":"https:\/\/quera.org\/blog\/#\/schema\/person\/74b7d6112dd94e279e8f38ef221f24f8","name":"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc","image":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/quera.org\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4eba87921b98361599d2e2c77313442298fbd2048b5fda1b709c4d1e189b7068?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4eba87921b98361599d2e2c77313442298fbd2048b5fda1b709c4d1e189b7068?s=96&d=mm&r=g","caption":"\u0627\u0628\u0648\u0627\u0644\u0641\u0636\u0644 \u0645\u0647\u0627\u062c\u0631\u06cc"}}]}},"_links":{"self":[{"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/posts\/35599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/comments?post=35599"}],"version-history":[{"count":21,"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/posts\/35599\/revisions"}],"predecessor-version":[{"id":45417,"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/posts\/35599\/revisions\/45417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/media\/35752"}],"wp:attachment":[{"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/media?parent=35599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/categories?post=35599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quera.org\/blog\/wp-json\/wp\/v2\/tags?post=35599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}