php https://drupalweb.ir/ fa شی گرایی در php https://drupalweb.ir/blog/shy-grayy-dr-php <span class="field field--name-title field--type-string field--label-hidden">شی گرایی در php</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">حامد حسینی</span></span> <span class="field field--name-created field--type-created field--label-hidden">جمعه, 02/21/2020 - 20:01</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>می توان گفت که برنامه نویسی شی گرا یا همان Object-Oriented Programming یک سبک یا الگو نوشتن کدهاست که به توسعه دهنده ها اجازه می دهد تا بخش های مشابه به هم را در مفهومی به اسم کلاس، گروه بندی نمایند.</p> <p>در واقع این گروه بندی به برنامه نویسان کمک خواهد کرد که به مفهوم DRY یا همان Don’t Repeat Yourself بیشتر نزدیک گردند، مضاف بر اینکه کدهای آن ها بسیار برای نگهداری و تغییر راحت تر خواهد بود. (به این مفهوم easy-to-maintain گفته می شود).</p> <p>یکی از مهم ترین مزیت های این سبک از کدنویسی، این می باشد که اگر قرار باشد تکه ای از داده های برنامه شما تغییر یابد، عموما لازم است فقط یک بخش در کدهای شما بروز رسانی گردد.</p> <p>مهم ترین مزیت برنامه نویسی شی گرا که باعث شده است اکثر developer ها از آن استفاده کنند، شبیه سازی برنامه نویسی با مفاهیم دنیای واقعی است. در واقع شما مفاهیم بسیار پیچیده برنامه نویسی را می توانید با مفاهیم شی گرایی به مفاهیم جاری و قابل فهم در دنیا واقعی تبدیل کنید.</p> <p>همین طور که می دانید، اطراف ما از اشیا مختلف تشکیل یافته است. هر کدام از آن ها خواصی دارند که آن را از شی مشابه خود، متفاوت می کنید. ضمن اینکه ارتباط بین اشیا با فرستادن پیام بین همدیگر برقرار می گردد.</p> <p>هر شی می تواند رفتاری از خود بروز دهد که مختص همان شی می باشد. این مفاهیم باعث شد تا همه این ها در مفاهیم برنامه نویسی شی گرا استفاده شود.</p> <p>در ادامه به طور مفصل در این مورد صحبت خواهد شد. در واقع برنامه نویسی با پیروی از الگوهای OOP ، یک روش برنامه نویسی است که در آن برنامه نویس، تمامی متغیرها و توابعی که بهم مرتبط می باشند را در قالب یک کلاس منفرد، سازمان دهی می کند.</p> <p>مثل تمام الگوهای برنامه نویسی، این الگو نیز مزایا و معایب خود را دارد که در نوشتار نمی گنجد. به صورت کوتاه می توان گفت ممکن است که در پروژه های ساده و همین طور در سایز کوچک، استفاده از الگوی Procedural که بر مبنای استفاده از توابع می باشد، به صرفه تر باشد.</p> <p>اما در پروژه هایی با ابعاد بزرگ و پیچیده، مسلما باید از الگوهای شی گرا در برنامه نویسی استفاده کرد چرا که هم باعث کاهش پیچیدگی کدها در آینده خواهد شد و هم نگهداری و عیب یابی آن به مراتب ساده تر از روش های برنامه نویسی رویه ای می باشد.</p> <h2>کلاس PHP چیست؟</h2> <p>یک کلاس به عنوان قالبی است که موجودیت‌های دنیای واقعی را نمایندگی می‌کند و به تعریف مشخصات و متدهای موجودیت می‌پردازد. در این بخش به بررسی آناتومی مقدماتی یک کلاس معمول PHP می‌پردازیم.</p> <pre> <code class="language-php">&lt;?php class Employee { private $first_name; private $last_name; private $age; public function __construct($first_name, $last_name, $age) { $this-&gt;first_name = $first_name; $this-&gt;last_name = $last_name; $this-&gt;age = $age; } public function getFirstName() { return $this-&gt;first_name; } public function getLastName() { return $this-&gt;last_name; } public function getAge() { return $this-&gt;age; } } ?&gt;</code></pre> <h3>مشخصات کلاس در PHP</h3> <p>مشخصات کلاس را می‌توان به صورت متغیرهایی تصور کرد که اطلاعاتی را در مورد شیء نگهداری می‌کنند. در مثال فوق به تعریف سه مشخصه نام (first_name)، نام خانوادگی (last_name) و سن (age) پرداختیم. در اغلب موارد مشخصات کلاس از طریق شیءهای وهله‌سازی شده مورد دسترسی قرار می‌گیرند.</p> <p>این مشخصات به صورت خصوصی (private) هستند، یعنی دسترسی به آن‌ها صرفاً از درون کلاس میسر است. این امن‌ترین سطح دسترسی برای مشخصات است. ما در ادامه به بررسی سطوح مختلف دسترسی به مشخصات کلاس و متدها خواهیم پرداخت.</p> <h3>سازنده‌ها در کلاس‌های PHP</h3> <p>یک سازنده (constructor) متد خاصی در کلاس است که به طور خودکار هنگام وهله‌سازی از یک شیء ایجاد می‌شود. شیوه وهله‌سازی از اشیا را در بخش‌های بعدی خواهیم دید؛ اما در حال حاضر کافی است بدانیم که یک متد سازنده برای مقداردهی اولیه مشخصات شیء، هنگام ایجاد شدن آن مورد استفاده قرار می‌گیرد. می‌توان یک سازنده را از طریق تعریف کردن متد construct__ تعریف کرد.</p> <h3>متدهای کلاس‌های PHP</h3> <p>متدهای کلاس را می‌توان به صورت تابع‌هایی تصور کرد که کارهای خاصی را در ارتباط با شیءها انجام می‌دهند. در اغلب موارد از این متدها برای دسترسی و دستکاری مشخصات شیء و اجرای عملیات مرتبط استفاده می‌شود.</p> <p>در مثال فوق متد getLastName را تعریف کرده‌ایم که نام خانوادگی مرتبط با شیء را باز می‌گرداند. بدین ترتیب تلاش کردیم تا توضیح مختصری در مورد ساختار کلاس در PHP ارائه کنیم. در بخش بعدی خواهیم دید که چگونه می‌توانیم شیءهایی را به صورت وهله‌هایی از کلاس Employee ایجاد کنیم.</p> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img loading="lazy" src="/sites/default/files/styles/blog/public/1398-12/Object-Oriented-PHP.jpg?itok=ib-m61vc" width="700" height="300" alt="شی گرایی در php" title="شی گرایی در php" typeof="foaf:Image" class="image-style-blog" /> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden clearfix"> <ul class='links field__items'> <li><a href="/brchsbha/shy-grayy-dr-php" hreflang="fa">شی گرایی در php</a></li> <li><a href="/brchsbha/php" hreflang="fa">php</a></li> </ul> </div> <div class="field field--name-field-dsth-bndy field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/dsth-bndy-wblag/php" hreflang="fa">php</a></div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class='title comment-form__title'>افزودن دیدگاه جدید</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=333&amp;2=field_comments&amp;3=comment" token="IaumvMzvoXA0i0YaD6KeXmc4GO8qhs_JTt476OIUyP0"></drupal-render-placeholder> </section> Fri, 21 Feb 2020 16:31:52 +0000 حامد حسینی 333 at https://drupalweb.ir https://drupalweb.ir/blog/shy-grayy-dr-php#comments