<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های ehsan hosseiny</title>
        <link>https://virgool.io/feed/@ehsanhossini</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 07:48:05</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/15290/avatar/avatar.png?height=120&amp;width=120</url>
            <title>ehsan hosseiny</title>
            <link>https://virgool.io/@ehsanhossini</link>
        </image>

                    <item>
                <title>استانداردهای کدنویسی در php</title>
                <link>https://virgool.io/@ehsanhossini/%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D8%AF%D9%87%D8%A7%DB%8C-%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AF%D8%B1-php-koad7c2prihd</link>
                <description>جامعه برنامه نویسان و توسعه دهندگان پی اچ پی بسیار بزرگ و پراکنده است . این جامعه با  اشتراک گذاری کتابخانه ها ، فریم ورک ها و اجزای گوناگون یک مرجع کامل  برای توسعه برنامه های پی اچ پی بوجود آورده اند که دیگر توسعه دهندگان  میتوانند از این ابزار ها در توسعه برنامه های خود استفاده کنند. امروزه  برای اینکه بخواهید یک برنامه امن و کامل تولید کنید ، امری طبیعی است که  یکی از این ابزار ها را در برنامه های خود استفاده نمایید. در حالت نیاز  است که کدهای پی اچ پی برای تولید و ارائه این ابزار ها از یک سبک  استاندارد پیروی کنند تا توسعه دهندگان بتوانند از کتابخانه های مختلف در  پروژه های خود استفاده کنند.گروه تعاملی فریم ورک های پی اچ پی ،  مجموعه ای از سبک های استاندارد برنامه نویسی پی اچ پی را تهیه و آماده  کرده اند که در برنامه های بزرگ مورد استفاده قرار داده می شوند.این سبک ها عبارتند از:Autoloading Standard : PSR-0Basic Coding Standard : PSR-1Coding Style Guide : PSR-2Logger Interface : PSR-3Improved Autoloading : PSR-4HTTP Message Interfaces : PSR-7این سبک های کد نویسی مجموعه ای از قوانین هستند که پروژه هایی نظیر  Drupal، Zend، Symfony، CakePHP و دیگر پروژه های بزرگ جهان از آنها  استفاده می کنند. شما میتوانید از این قوانین در پروژه های خود استفاده  کرده یا به همین سبک کد نویسی در پروژه های خود را ادامه دهید. تمامی این  صحبت ها بدین معنی است که شما باید بطوری کد بنویسید که از یک سبک  استاندارد شناخته شده پیروی کند. این استاندارد کد  نویسی میتواند یکی از PSR ها یا استاندارد های ایجاد شده Pear ، Zend یا  Symfony باشد. در لینک های زیر اطلاعات بیشتری پیرامون استاندارد های کد  نویسی برای این سه روش بدست آورید:https://www.php-fig.org/psr/https://github.com/php-fig/fig-standardshttp://framework.zend.com/manual/current/en/ref/coding.standard.htmlشما برای بررسی هر یک از استانداردهای کد نویسی میتوانید از ابزاری  مانند CodeSniffer استفاده کنید. افزونه های مختلفی برای ویرایشگر های متن  وجود دارند که کار مشابهی را انجام می دهند همانند sublime-phpcs که بررسی  استاندارد کدهای نوشته شده توسط ویرایشگر متن Sublimetext را بعهده دارد.ابزار دیگری با نام PHP Coding  Standards Fixer یا (php-cs-fixer.phar) وجود دارد که به صورت خودکار کد  شما را نسبت به استاندارد های تعریف شده بررسی می کند و تغییرات لازم را  بصورت اتوماتیک انجام می دهد بطوری که نیاز نیست شما کاری بصورت دستی انجام  دهید.دقت کنید که زبان اصلی برای ساختار کدهای پی اچ پی زبان انگلیسی است و  شما در کامنت های خود میتوانید از هر زبانی که با آن آشنا هستید استفاده  کنید. این به آن معناست که هیچوقت در دستورات PHP از متن های فارسی (مگر  برای نمایش خروجی) استفاده نکنید.</description>
                <category>ehsan hosseiny</category>
                <author>ehsan hosseiny</author>
                <pubDate>Sat, 16 Feb 2019 09:52:47 +0330</pubDate>
            </item>
                    <item>
                <title>اصول طراحی شی گرا SOLID چیست؟</title>
                <link>https://virgool.io/@ehsanhossini/%D8%A7%D8%B5%D9%88%D9%84-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B4%DB%8C-%DA%AF%D8%B1%D8%A7-solid-%DA%86%DB%8C%D8%B3%D8%AA-f2wibf1yb5s7</link>
                <description>سلام دوستان عزیزموضوع این مقاله , اصول طراحی شی گرا SOLID است . این اصول در تمام زبان های برنامه نویسی مثل php موجود و قابل پیاده سازی است .SOLID مخفف پنج اصل بسیار مهم در مدیریت وابستگی  (Dependency Management) در توسعه ی برنامه های شی گرا می باشد. در واقع هر  کدام از حروف کلمه ی SOLID به یکی از این اصول بر می گردد.یکی از مشکلاتی که طراحی نامناسب برنامه های شی گرا برای برنامه  نویسان ایجاد می کند موضوع مدیریت وابستگی در اجزای برنامه می باشد. اگر  این وابستگی به درستی مدیریت نشود مشکلاتی شبیه موارد زیر در برنامه ایجاد  می شوند:برنامه ی نوشته شده را نمی توان تغییر داد و یا قابلیت جدید  اضافه کرد. دلیل آن هم این است که با ایجاد تغییر در قسمتی از برنامه، این  تغییر به صورت آبشاری در بقیه ی قسمت ها منتشر می شود و مجبور خواهیم بود  که قسمت های زیادی از برنامه را تغییر دهیم. (این مشکل را Rigidity می  نامیم.)تغییر دادن برنامه مشکل است و آن هم به این دلیل که با ایجاد  تغییر در یک قسمت از برنامه، قسمت های دیگر برنامه از کار می افتند و دچار  مشکل می شوند. (این مشکل را Fragility می نامیم.)قابلیت استفاده مجدد  از اجزای برنامه وجود ندارد. در واقع، قسمت های مجدد برنامه ی شی گرای شما  آنچنان به هم وابستگی تو در تو دارند که به هیچ وجه نمی توانید یک قسمت را  جدا کرده و در برنامه ی دیگری استفاده کنید. (این مشکل را Immobility می  نامیم.)اصول SOLID که قصد رفع کردن این مشکلات و بسیاری مسائل گوناگون را دارند عبارت اند از:1 : Single Responsibility Principle2 : Open-Closed Principle3 : Liskov Substitution Principle4 : Interface Segregation Principle5 : Dependency Inversion Principleبا کنار هم گذاشتن حرف اول هر کدام از این اصول کلمه ی SOLID ایجاد می  شود. با در نظر گرفتن این پنج اصل و پیاده سازی آنها در برنامه های خود می  توانید به یک طراحی شی گرا پاک و درست دست پیدا کنید. Single responsibility principle یا SPR :  به معنی اینکه هر کلاس  بایستی فقط یک کار انجام دهد نه بیشتر, که در ادامه  توضیح خواهم دادOpen/closed principle یا OCP به معنی اینکه کلاس ها جوری نوشته بشن که قابل گسترش باشند اما نیاز به تغییر نداشته باشند. Liskov Substitution Principle یا LSPبه مفهوم اینکه هر کلاسی که از کلاس دیگر ارث بری میکند هرگز نباید رفتار کلاس والد را تغییر دهد.Interface Segregation Principle یا ISP    به مفهوم اینکه چند اینترفیس کوچک و خورد شده همیشه بهتر از یک اینترفیس کلی و بزرگ است. Dependency inversion principle یا DIP به معنی اینکه از اینترفیس ها به خوبی استفاده کن!</description>
                <category>ehsan hosseiny</category>
                <author>ehsan hosseiny</author>
                <pubDate>Tue, 29 Jan 2019 11:59:47 +0330</pubDate>
            </item>
            </channel>
</rss>