<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سعید قاسمی</title>
        <link>https://virgool.io/feed/@sgsm74</link>
        <description>Software Developer</description>
        <language>fa</language>
        <pubDate>2026-06-07 12:32:08</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/43227/avatar/L9PShM.png?height=120&amp;width=120</url>
            <title>سعید قاسمی</title>
            <link>https://virgool.io/@sgsm74</link>
        </image>

                    <item>
                <title>الگوی طراحی Singleton</title>
                <link>https://virgool.io/@sgsm74/%D8%A7%D9%84%DA%AF%D9%88%DB%8C-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-singleton-t5utpyamxe2e</link>
                <description>الگوی طراحی Singleton که یک الگو از نوع Creational هست تاکید داره که از هر کلاسی فقط و فقط یک نمونه وجود داشته باشه...Singletonخب حالا ببینیم که الگوی Singleton چه مشکلاتی رو حل میکنه؟این الگو در آن واحد دو مشکل رو حل میکنه که این نقض قانون اول قوانین SOLID هستش:۱- مطمئن شدن از این که هر کلاس فقط یه نمونه داره. اصلا چرا باید همچین چیزی رو بخوایم؟که ببینیم از هر کلاسی چند نمونه وجود داره؟ یکی از دلایل مهمش کنترل دسترسی به یه سری منابع اشتراکی هستش مثل پایگاه داده یا فایل ها.حالا چطوری کار میکنه؟ فرض کنید یه نمونه از یه کلاس رو ایجاد کردید اما بعد مدتی می خواید یه نمونه دیگه رو ایجاد کنید به جای این که دیتای تازه ای بگیرید همون نمونه قبلی رو میگیرید.البته این مورد با Constructor های معمولی غیرممکنه به خاطر این که این نوع سازنده ها همیشه باید یه نمونه جدید رو برگردونن.Singleton design pattern۲- فراهم کردن یه نقطه دسترسی Global به اون نمونه. حتما با متغیرهای Global آشنا هستید و از اونا برای ذخیره کردن یه سری Objectها استفاده کردید... این متغیرها با این که خیلی کاربردی هستند اما از سوی دیگه قضیه ممکنه ناامن باشند به این صورت که هر کدی میتونه محتوی اونا رو overwrite کنه و باعث کرش شدن برنامه بشه.دقیقا مثل متغیرهای Global الگوی Singleton اجازه دسترسی سراسری به اون نمونه رو تو کل برنامه به شما میده با تفاوت این که اجازه نمیده که مقدار اون توسط کدهای دیگه عوض بشه.خب حالا راه حل چیه؟تمامی پیاده سازی های الگوی Singleton دو تا مرحله داره:۱- سازنده پیش فرض کلاس رو به صورت Private در نظر بگیرید برای این که از دسترسی کلاس های دیگه برای ایجاد نمونه جلوگیری کنه.۲- یه متد استاتیک درست کنید که به عنوان سازنده کلاس عمل کنه، تو لایه پایین تر این متد در واقع سازنده Private کلاس رو صدا میزنه و تو یه فیلد static اونو میریزه و شما هر وقت این کلاس رو صدا بزنید در اصل اون مقدار کش شده برمیگرده.زنگ تفریحیه نمونه  برای این الگو تو دنیای واقعی هم هست دولت رسمی یه کشور هستش. هر کشوری فقط و فقط میتونه یه دولت رسمی داشته باشه...خب حالا ساختار این الگو چیه؟اینجا به دیاگرام UML داریم که به خوبی این الگو رو تشریح میکنه:کلاس Singleton یه متد استاتیک به اسم getInstance داره که همون نمونه کلاس خودش رو برمیگردونه. سازنده کلاس هم باید از دید Client مخفی بمونه و تنها راه گرفتن نمونه همون static method باشه.خب حالا نحوه پیاده سازیش چطوریه؟چندین راه برای پیاده سازی این الگو وجود داره حالا ما تو این مقاله ۲ تاش رو بررسی می کنیم، خب بریم سراغ مورد اول:۱- اول از همه باید یه فیلد static محرمانه به کلاس اضافه کنید.۲- یه متد پابلیک برای دسترسی به نمونه کلاس درست کنید.۳-خب حالا باید داخل متد استاتیک lazy initialization رو پیاده سازی کنید این کار باعث میشه که با اولین صدا زدن کلاس یه نمونه از اون کلاس ایجاد بشه و داخل فیلد استاتیک گذاشته بشه و برای بارهای بعدی همون نمونه رو به کلاینت برگردونه.۴- حالا باید سازنده کلاس رو به صورت محرمانه در نظر بگیرید تو این مورد متد استاتیک به سازنده دسترسی داره اما بقیه کلاس ها دسترسی ندارند.۵- حالا باید سراغ بقیه کدها برید و هر جا خواستید که یه نمونه از اون کلاس بسازید به جای صدا زدن مستقیم سازنده کلاس از متد استاتیک اون کلاس استفاده کنید.مورد دوم:۱- اول از همه باید یه فیلد استاتیک محرمانه به کلاس اضافه کنید و اونو با استفاده از سازنده محرمانه کلاس مقداردهی کنید۲- با استفاده از کلیدواژه factory یه سازنده برای اون کلاس بسازید که به اون نمونه اشاره میکنه.خب حالا بریم سراغ مزایا و معایب این الگو:مزایا: از هر کلاسی فقط و فقط یه نمونه وجود داره.برای اون نمونه یه دسترسی سراسری تو کل برنامه دارید. نمونه فقط و فقط یه بار مقداردهی میشه اونم برای بار اولی که صدا زده میشهمعایب:اصل اول SOLID رو نقض میکنه یا همون اصل تک مسئولیتی که این الگو در آن واحد ۲ مشکل رو حل میکنه.تو سیستم های multithreaded ممکنه به مشکل بخورید چون هر thread نمیتونه یه نمونه بسازهبرای تست نویسی احتمالا به مشکل بخوریدخب بریم سراغ بخش آخر:ببینیم که رابطه این الگو با الگوهای دیگه چیه؟؟یه کلاس Facade به یه Singleton تبدیل بشه از اونجا که یه شی از نوعFacade برای اغلب موارد کافیه.الگوهای Abstract Factories, Builders , Prototypes می تونن به عنوان Singleton پیاده سازی بشن.الگوی Flyweight رو یه جورایی میشه شبیه به Singleton دونست البته به شرطی که تمامی state های اشتراکی بین نمونه ها رو تا سر حد یه نمونه کاهش بدید. احتمالا نفهمیدید این قسمت چی شد!! اما نگران نباشید به وقتش سراغ این الگو هم میریم :دی. اما باز با این حال دو تفاوت اساسی بین این دو الگو وجود داره: ۱- از Singleton فقط و فقط یه نمونه وجود داره در صورتی که از Flyweight نمونه های متفاوتی وجود داشته باشه ۲- Singleton objects میتونن mutable باشن در صورتی که Flyweight خلاف این قضیه هستش و immutable هستن.</description>
                <category>سعید قاسمی</category>
                <author>سعید قاسمی</author>
                <pubDate>Thu, 14 Jul 2022 15:18:40 +0430</pubDate>
            </item>
                    <item>
                <title>الگوهای طراحی در Flutter</title>
                <link>https://virgool.io/@sgsm74/%D8%A7%D9%84%DA%AF%D9%88%D9%87%D8%A7%DB%8C-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%AF%D8%B1-flutter-aohod7j9bdrz</link>
                <description>سلام دوستان امیدوارم حالتون خوب باشه من سعید قاسمی هستم از سال ۹۵ برنامه نویسی Back-end رو شروع کردم و سرآغاز راهم با زبان PHP بود :دیپس از مدتی سراغ فریمورک محبوب لاراول رفتم و تا سال پیش که با Flutter آشنا شدم و کلا استک کاریم رو عوض کردم :)مبحث الگوهای طراحی یکی از مباحث فرار برنامه نویسی هستش که اگه با کاربردشون اشنا نباشید و ازشون تو جاهای مخصوص خودشون استفاده کنید از ذهنتون فرار میکنه...حالا من میخوام یه سلسله مقالاتی راجب پیاده سازی الگوهای طراحی تو زبان Dart بنویسم که امیدوارم مفید واقع بشه، این پست بعد از انتشار هر کدوم از الگوها آپدیت میشه پس اینجا رو ذخیره داشته باشید...الگوهای طراجیخب اول از همه یه مروری داشته باشیم به Design Patterns و این که ببینیم اصلا چطور به وجود اومدن؟و چرا؟الگوی طراحی چیست؟یه Design Pattern یه راه حل برای یه سری مشکلات رایج توسعه نرم افزار هستش و مثل یه سری طرح های پیش ساخته هستن که مشکلات طراحی تو کدتون رو میتونید با استفاده از اونا برطرف کنید.اغلب الگوها رو با الگوریتم اشتباه می گیرند چون جفتشون دنبال یه سری راه حل برای یه سری مسائل خاص هستن، اما این دو مقوله جدا از هم هستش، الگوریتم یه سری عملیات خاص رو برای رسیدن به یه سری هدف دنبال می کنه اما الگو تعریف دقیق تر و واضح تری از راه حل هستش.طراحی الگوریتم مثل اشپزی کردن از روی دستورالعمل پخت یه غذا هستش یه سری مراحل خاص دارن تا به یه غذای خوشمزه برسید :دی اما الگو بیشتر شبیه یک طرح هستش که تو نتایج و ویژگی هاش رو میبینی اما این که چطوری مراحل رو طی کنی تا به اون غذای خوشمزه برسی به خودت بستگی داره.تاریخچه این که بگیم الگوهای طراحی توسط چه کسی به وجود اومد سوال انچنان دقیقی نیست، الگوهای طراحی برای رفع یه سری مشکلات نرم افزاری شی گرا به وجود اومدن. وقتی یه راه حل به وفور تو پروژه های مختلف استفاده میشه یه نفر اون راه حل رو کشف میکنه و یه اسم روش میذاره و به عنوان یه راه حل عمومی معرفی میکنه اینجوریه که الگوی طراحی کشف میشه.مفهوم اولیه الگوهای طراحی توسط آقای Christopher Alexander در کتابی به نام Design Patterns: Elements of Reusable Object-Oriented Software این کتاب یک زبان رو برای طراحی یه محیط شهری معرفی کرده. توسط این الگوها ارتفاع پنجره ها، تعداد طبقات یک ساختمان و مساحت محیط سبز اطراف خونه مشخص می شدند.این ایده چند سال بعد توسط ۴ نفر به نام های Erich Gamma, John Vlissides, Ralph Johnson,  Richard Helm برداشته شد و در سال ۱۹۹۴ در کتابی با عنوان Design Patterns: Elements of Reusable Object-Oriented Software منتشر شد که به بحث راجب مفاهیم الگوهای طراحی حول زبان های شی گرا پرداخته شده. داخل این کتاب به ۲۳ تا از پرکاربردترین و مهم ترین الگوهای طراحی اشاره شده و راجب هر کدوم از اون ها به طور مفصل توضیح داده شده. این کتاب رو به دلیل طولانی شدن عناوین نویسنده هاش به اسم کتاب گروه چهار نفره یا به عبارتی “the book by the gang of four” که بعدا به صورت مختصرتر با عنوان “the GoF book” میشناسن.چرا الگوی طراحی رو باید یاد بگیریم؟حقیقت اینه که شما ممکنه سال ها به عنوان یک برنامه نویس مشغول به کار باشی اما حتی یه الگو طراحی رو هم نشناسی، البته اکثر مردم همینن... حتی ممکنه بدون این که خودت متوجه باشی یه سری از الگوها رو پیاده سازی کرده باشی پس چه ضرری داره که بخای این الگوها رو یاد بگیری؟؟ :دی۱-  الگوهای طراحی یه سری از راه حل های مطمئن و تست شده برای مشکلات توسعه نرم افزاری هستن حتی اگر به هیچ مشکلی برنخوردید چه عیبی داره که این الگوها رو بلد باشید و از این طریق می تونید برای هر گونه مشکلی طراحی نرم افزار یک راه حل مناسب پیدا کنید.۲- الگوهای طراحی یه زبان مشترک دارن که می تونید با هم تیمی هاتون با اون ارتباط برقرار کنید مثلا شما می گید برای اون از Singleton استفاده کن و همه افراد تیم هدف شما رو از گفتن این کلمه میفهمن به همین راحتی:)طبقه بندی الگوهابه طول کلی الگوها بر اساس هدف و کاربردی که دارند به ۳ دسته کلی تقسیم می شن:1- Creational patterns2- Structural patterns3- Behavioral patternsالگوهای Creational بیشتر حول افزایش انعطاف پذیری و استفاده مجدد از کدهاتون داخل پروژه هاتون تمرکز کرده.الگوهای Structural به چگونه سر هم اوردن اشیاها و کلاس ها داخل ساختارهای بزرگتر بدون تاثیر روی انعطاف پذیری و کارایی اونا تمرکز کرده.الگوهای Behavioral بیشتر حول ارتباط موثر و مسئولیت بین اشیا می پردازه.برای مشاهده بخش های دیگه از لینک های زیر استفاده کنید:الگوی Singleton</description>
                <category>سعید قاسمی</category>
                <author>سعید قاسمی</author>
                <pubDate>Sun, 10 Jul 2022 18:11:09 +0430</pubDate>
            </item>
                    <item>
                <title>نسخه پایدار Laravel Octane منتشر شد</title>
                <link>https://virgool.io/@sgsm74/%D9%86%D8%B3%D8%AE%D9%87-%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1-laravel-octane-%D9%85%D9%86%D8%AA%D8%B4%D8%B1-%D8%B4%D8%AF-ntoyofgl6q8g</link>
                <description>Laravel Octane v1.0تیم لاراول بر روی Laravel Octane که یک ابزار برای بهینه سازی و افزایش کارایی برنامه شما می باشد به سختی کار کرده ، بعد از انتشار نسخه بتا در آوریل هم اکنون نسخه پایدار V1.0 منتشر شده.پکیج Ocatane با استفاده از سرورهای پرقدرتی که با لاراول ادغام شده است بنچمارک عملکرد وصف نشدنی ای رو به رخ کشیده . بعضی از چیزایی که لازمه برای استفاده از نسخه پایدار Octane بدونید:1- نیازمند نسخه PHP 8  و به بالا.2- پکیج Octane  از Roadrunner که یک اپلیکیشن سرور و تعدیل کننده و همچنین یک مدیر پردازش نوشته به زبان Go می باشد پشتیبانی می کند.3- پکیج Octane از Swoole PHP که یک سرور برنامه ای برای PHP با Async IO می باشد پشتیبانی می کند.مستندات در سایت لاراول قابل دسترس می باشند.هنگام انتخاب سرور اصلی که می خواهید اجرا کنید مستندات را به دقت بخوانید هر دو سرور عملکرد بالایی رو به اجرا می گذارند اما Octane یه سری ویژگی های خاصی رو برای Swoole فراهم می کنه که توی Roadrunner امکان پذیر نیست.وقتی از Swoole استفاده می کنید شما باید این گونه به یک cache driver دسترسی پیدا کنید:Cache::store(&#039;octane&#039;)-&gt;put(&#039;framework&#039;, &#039;Laravel&#039;, 30);بر اساس فایل Readme که Octane Cache driver(قدرت گرفته از Swoole table):این Swoole تا تعداد 2 میلیون عملیات در ثانیه را برای خواندن و نوشتن را فراهم می کند. این cache driver قدرت گرفته به وسیله Swoole tables می باشد. تمامی داده های ذخیره شده در کش در تمامی workerهای سرور موجود می باشد. گرچه با خاموش شدن سرور تمامی داده های کش شده می پره :)با Swoole شما می تونید تسک های همزمانی رو انجام بدید یعنی به طور همزمان یه سری عملیات رو همراه یه سری تسک های سبک دیگه به طور همزمان انجام بدید:use App\User;use App\Server;use Laravel\Octane\Facades\Octane;[$users, $servers] = Octane::concurrently([    fn () =&gt; User::all(),    fn () =&gt; Server::all(),]);در آخر Swoole مفهوم جداول Swoole رو داره که عملکرد عالی و داده های موجود در این جداول توسط همه Worker های موجود در سرور قابل دسترسی است رو فراهم می کنه.در اینجا یک مثال می بینیم که شما می بینید چطور میشه با استفاده از Octane به جداول Swoole تعامل داشت:// Octane tables config in config/octane.phpreturn [    &#039;tables&#039; =&gt; [        &#039;example:1000&#039; =&gt; [            &#039;name&#039; =&gt; &#039;string:1000&#039;,            &#039;votes&#039; =&gt; &#039;int&#039;,        ],    ],];// Usage exampleuse Laravel\Octane\Facades\Octane;Octane::table(&#039;example&#039;)-&gt;set(&#039;uuid&#039;, [    &#039;name&#039; =&gt; &#039;Nuno Maduro&#039;,    &#039;votes&#039; =&gt; 1000,]);Octane::table(&#039;example&#039;)-&gt;get(&#039;uuid&#039;);</description>
                <category>سعید قاسمی</category>
                <author>سعید قاسمی</author>
                <pubDate>Thu, 13 May 2021 05:46:01 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش نصب سریع Laravel 5.8</title>
                <link>https://virgool.io/laravel-community/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%B5%D8%A8-%D8%B3%D8%B1%DB%8C%D8%B9-laravel-58-kwiuibcccsou</link>
                <description>  لاراول یکی از پیشرفته ترین فریم ورک های موجود PHP برای توسعه دهندگان می باشد. این فریم ورک هر ساله بروزرسانی های جدیدی را با انتشار نسخه های جدید دریافت می کند. امسال هم انتشار Laravel 5.8 توسعه دهندگان را نا امید نکرد، در آخرین نسخه چند ویژگی جدید نیز با نسخه های قدیمی ادغام شده است.ویژگی های Laravel 5.8آخرین ویژگی های Laravel 5.8 شگفت انگیز است و این فریم ورک را بیش از حد قوی و امن میسازد. این ویژگی ها کمک می کنند که هسته اصلی وبسایت لاراول بهینه شوند.بعد از نصب Laravel 5.8 این ها ویژگی هایی هستند که متوجه آنها خواهید شد:بروز رسانی قانون اعتبارسنجی ایمیلDotenv 3.0منسوخ شدن توابع کمکی آرایه و رشتهBlade Template File Path in Compiled fileCache TTL in Seconds Changeمتد جدید firstWhere در کالکشنUnquoted MySQL JSON Values in Databaseبروز رسانی اعتبارسنجی ایمیلقانون های اعتبارسنجی ایمیل هم اکنون در لاراول هستند، اگرچه Laravel 5.8 دارای منشورهای بین المللی است که باید آدرس ایمیل را بررسی کنید. به این معنی است که اعتبارسنجی ایمیل در حال حاضر بررسی خواهد کرد آیا ایمیل بر اساس قوانین سازگار RFC5630 است یا خیر.برای مثال اگر پروژه لاراول شما دارای قطع کد اعتبارسنجی ایمیل زیر باشد:$request-&gt;validate([
&#039;email&#039; =&gt; &#039;email&#039;,
]);پروسه اعتبارسنجی ایمیل برای ایمیلی مانند axy@abcd.se در Laravel 5.7 ناموفق است اگرچه با بروزرسانی های جدید در Laravel 5.8 موفقیت آمیز خواهد بود.Dotenv 3.0لاراول 5.8 از نسخه جدید Dotenv 3.0 برای مدیریت محیط env. پروژه استفاده می کند.ویژگی کلیدی در Dotenv 3.0 پشتیبانی آن از رشته های چند خطی و فضاهای خالی در اخر رشته های فایل env. می باشد به عنوان مثال:DEVELOPMENT_APP_KEY=&quot;specialstringforthisapplication&quot; سایر ویژگی های قرار گرفته است:انعطاف پذیری بیشتر در مقررات بخشی هایی از محیط که شما می خواهید بخوانید و مدیریت کنید.پشتیبانی First-class برای متغیرهای چندخطی.متغیرها اصلاح نمیشوند، به همان صورتی که هستند دریافت خواهید کرد.پذیرش لیستی از مسیرهایی برای پیدا کردن فایل env. نسبت به کار روی تک مسیر.اعتبارسنجی قوی تر نام متغیرها برای جلوگیری از خطای صامت یا مبهم.در Laravel 5.7 فقط specialstringfor را بازگشت میداد در همین حال در Laravel 5.8 شما می توانید کل specialstringforthisapp را پارس کنید. همچنین فضاهای اضافی بعد از رشته را نادیده میگیرد که ما قبلا به صورت تکه تکه شده از متغیرهای محیطی درآورده ایم.منسوخ شدن توابع کمکی آرایه و رشتهدر Laravel 5.8 هیچ تابع کمکی برای رشته یا آرایه موجود نیست، در عوض شما باید از فساد ::Arr و ::Str استفاده کنید در همین حال اگر شما نمی خواهید که روی کدهای موجود مجددا کار کنید می توانید از پکیج های مشخصی برای نگهداری عملکردهای موجود استفاده کنید.شما باید یک تابع موجود _array را جایگزین کنید مانند:function array_add($array, $key, $value)با:Arr::add($array, $key, $value)به طور مشابه توابع کمکی رشته مانند:function str_contains($haystack, $needles)باید با کد زیر جایگزین شود:Str::contains($haystack, $needles);در واقعیت اگر شما کد Laravel 5.8 را برای توابع کمکی آرایه یا رشته چک کنید متوجه میشوید که از نسخه فساد استفاده شده است.پشتیبانی Carbon 2.0نسخه جدید Carbon 2.0 هم اکنون در Laravel 5.8 برای سهولت توسعه دهندگان در کنترل عملیات مربوطه پشتیبانی می شود.پشتیبانی Pheanstalk 4.0لاراول 5.8 هم اکنون از Pheanstalk 4.0 پشتیبانی می کند. اگر شما از کتابخانه قدیمی تر Pheanstalk در اپلیکیشن خود استفاده می کنید به وسیله Composer به آخرین نسخه بروزرسانی کنید.Blade Template File Path in Compiled fileگرچه همه ما می دانیم لاراول فایل های blade را کامپایل می کند اما به نحوی مسیر آن را فراهم نمی کند.Laravel 5.8 با راه حل این مشکل آمده است.در Laravel 5.8 یک مسیر ویژه برای فایل های blade وجود دارد همانگونه که در مثال زیر نشان داده شده است:&lt;?php /* /var/www/me/5.8/blog/resources/views/welcome.blade.php */ ?&gt;
&lt;!doctype html&gt; 
&lt;html lang=&quot;&lt;?php echo e(str_replace(&#039;_&#039;, &#039;-&#039;, app()-&gt;getLocale())); ?&gt;&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;utf-8&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;  
&lt;title&gt;Laravel&lt;/title&gt;
&lt;!-- Fonts --&gt;
&lt;link href=&quot;https://fonts.googleapis.com/css?family=Nunito:200,600&quot; rel=&quot;stylesheet&quot;&gt;Laravel Error Pageلاراول 5.8 با صفحه های خطای جدید آمده است که شامل طراحی مینیمالیستی می باشد که برای اکثر وبسایت ها مناسب است. بنابراین اپلیکیشن های تحت وب نیازی به طراحی دوباره این صفحه ها ندارند.Cache TTL in Seconds Changeاگر اپلیکیشن شما از توابع کش Laravel 5.8 استفاده می کند پس باید به خاطر داشته باشید عدد متغیری که برای طول مدت زمان کش وارد می کنید بر حسب ثانیه است بر خلاف Laravel 5.7 که بر حسب دقیقه بود.Cache::put(&#039;foo&#039;, &#039;bar&#039;, 15);همین حالت برای توابع putMany و add و remember نیز وجود دارد.متد جدید firstWhere در کالکشنلاراول 5.8 یک تابع جدیدی به اسم firstWhere را معرفی کرد که با شی کالکشن یکپارچه شده است. در عوض استفاده از first() شما می تواند یک شی تنها با استفاده از متد firstWhere بگیرید.یک مثال:$collection = collect([  
[&#039;name&#039; =&gt; &#039;Hardik&#039;, &#039;age&#039; =&gt; 25],
[&#039;name&#039; =&gt; &#039;Vimal&#039;, &#039;age&#039; =&gt; 24],
[&#039;name&#039; =&gt; &#039;Harshad&#039;, &#039;age&#039; =&gt; 23],
]);
$collection-&gt;firstWhere(&#039;name&#039;, &#039;Vimal&#039;);
// [&#039;name&#039; =&gt; &#039;Vimal&#039;, &#039;age&#039; =&gt; 24]Unquoted MySQL JSON Values in Databaseدر Laravel 5.7  گونه JSON مقادیر ذخیره شده در ستون های دیتابیس MySQL و MariaDB که بین دو کوتیشن باشند را باز میگرداند در حالی که در Laravel 5.8 همان مقادیر را به صورت تمیز برمیگرداند.یک مثال در این مورد:$value = DB::table(&#039;users&#039;)-&gt;value(&#039;options-&gt;language&#039;);
dump($value);
// Laravel 5.7…
&#039; &quot;en&quot; &#039; 
// Laravel 5.8… 
&#039;En&#039;کانال های اطلاع رسانی Newmo  و Slackکانال های اطلاع رسانی Nexmo و Slack از پروژه اصلی لاراول حذف شده اند و به عنوان یک پکیج مجزا ارائه شده اند.برای استفاده مجدد از Slack یا Nexmo در پروژه خود باید موارد زیر را به کار ببرید :composer require laravel/nexmo-notification-channel
composer require laravel/slack-notification-channelپروسه بروزرسانی از نسخه های قدیمی به جدیدترین نسخهبرای بروزرسانی  باید حداقل به یک ساعت زمان برای تغییرات احتمالی ذکر شده در مستندات لاراول نیاز دارید. برای شروع نصب Laravel 5.8 باید اول وابستگی های فریم ورک داخل composer.json بروز کنید.The environment MethodAuthenticationCacheCollectionsDatabaseEloquentViewValidationNotificationsنصب Laravel 5.8 روی سرور ( Local host )برای نصب Laravel 5.8 از ابتدا به موارد زیر نیاز پیدا خواهید کرد:PHP &gt;= 7.1.3ComposerXampp / Wampلاراول برای مدیریت وابستگی هایش از composer استفاده می کند. برای شروع نصب Laravel با استفاده از composer  شما باید ابتدا به نصب composer روی ماشین خانگی همانند تصویر زیر عمل کنید: زمانی که نصب Laravel تمام شد می تواند با استفاده از دستور زیر اقدام به ایجاد پروژه جدید کنید:composer create-project --prefer-dist laravel/laravel CloudwaysStarting Laravel Serverاگر شما برنامه PHP را بر روی Local host نصب کرده باشید و می خواهید از سرور داخلی آن برای میزبانی اپلیکیشن استفاه کنیدمی توانید از دستور Laravel artisan command استفاده کنید. این دستور به شما کمک می کند که سرور لاراول را بر روی http://localhost:8000 شروع کنید:php artisan serveسپس می توانید URL اپلیکیشن خود را باز کرده و صفحه لاراول را مشاهده می کنید.</description>
                <category>سعید قاسمی</category>
                <author>سعید قاسمی</author>
                <pubDate>Sun, 05 May 2019 16:57:39 +0430</pubDate>
            </item>
                    <item>
                <title>توابع Short Arrow در PHP</title>
                <link>https://virgool.io/@sgsm74/%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-short-arrow-%D8%AF%D8%B1-php-vks0gi5btucc</link>
                <description> تیم توسعه دهنده PHP اخیرا توابع Short Arrow را که توسط Nikita Popov و Levi Morrison و Bob Weinand پیشنهاد شده را تایید کردنددر RFC یک مثال برای چگونگی انجام این ایده که چطور استفاده شود وجود دارد:نمونه مثال در فریمورک لاراول میتواند به صورت زیر باشد:توابع Short Arrow به هدف گنجاندن در PHP v7.4 برنامه ریزی شده است شما می توانید اطلاعات بیشتری در این مورد در سایت PHP wiki و یا با گوش دادن به PHP Internals Podcast جایی که Nikita Popov برای بحث در مورد این تغییر عضو شده است، به دست آورید.</description>
                <category>سعید قاسمی</category>
                <author>سعید قاسمی</author>
                <pubDate>Fri, 03 May 2019 02:41:11 +0430</pubDate>
            </item>
            </channel>
</rss>