<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Reza Amini</title>
        <link>https://virgool.io/feed/@rezi</link>
        <description>سلام ، من رضام برنامه نویس Back-end و علاقه مند به حوزه تکنولوژی :)</description>
        <language>fa</language>
        <pubDate>2026-04-14 18:36:17</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/59016/avatar/9Yt2nR.png?height=120&amp;width=120</url>
            <title>Reza Amini</title>
            <link>https://virgool.io/@rezi</link>
        </image>

                    <item>
                <title>جادوی الکوئنت در لاراول (نکات حرفه ای الکوئنت)</title>
                <link>https://virgool.io/laravel-community/%D8%AC%D8%A7%D8%AF%D9%88%DB%8C-%D8%A7%D9%84%DA%A9%D9%88%D8%A6%D9%86%D8%AA-%D8%AF%D8%B1-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-%D9%86%DA%A9%D8%A7%D8%AA-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%A7%D9%84%DA%A9%D9%88%D8%A6%D9%86%D8%AA-lc9qaq5spsjs</link>
                <description>الکوئنت یکی از بخش های اصلی و بسیار کاربردی لاراول هست که ما در طول یک پروژه لاراولی ممکنه بسیار با اون کار کنیم و سر کله و بزنیم.این بخش به حدی عمیق هست که هر روز متد های جدیدی بهش اضافه میشه و ممکنه خیلی از ما حتی 30 درصد از اون رو هم نشناسیم و باهاش اشنایی نداشته باشیم.الکوئنت در واقع یک ORM هست که توسط تیم لاراول و برای لاراول پیاده سازی شده و البته که شما میتونید خارج از لاراول هم ازش استفاده کنید.تعریف خود لاراول از الکوئنت : Laravel includes Eloquent, an object-relational mapper (ORM) that makes it enjoyable to interact with your database. When using Eloquent, each database table has a corresponding &quot;Model&quot; that is used to interact with that table. In addition to retrieving records from the database table, Eloquent models allow you to insert, update, and delete records from the table as well.الکوئنت در پشت صحنه در واقع در بیشتر موارد از Query Builder لاراول استفاده میکنه و درون خودش روابط بین مدل هارو هم پیاده سازی کرده.شما اگر به تسلط کافی از الکوئنت برسید قطعا کارکردن با روابط در لاراول و درک اون ها براتون بسیار راحت تر میشه و میتونید کوئری های بسیار بهینه تری رو به دیتابیس بزنید که مشکل همیشگی برنامه نویسان تازه کار و یا حتی با تجربه نحوه کوئری زدن به دیتابیس هست.من تصمیم گرفتم که در یوتیوب یک دوره کاملا رایگان در این خصوص رو آماده کنم و سعی موارد پیشرفته تر الکوئنت که شاید خیلی از دوستان باهاش اشنایی نداشته باشن رو توضیح بدم، در حال حاضر دوره در حال تکمیل هست و هر روز قسمت های جدید قرار میگیره و شما میتونید با سابسکرایب کردن کانال یوتیوب از قسمت های جدید دوره با خبر بشید و البته از دوره های دیگه هم بصورت کاملا رایگان استفاده کنید.لینک کانال یوتیوب : https://www.youtube.com/channel/UCQ7SeMUGmYTkUGGUNFTro2Aلینک دوره :https://www.youtube.com/watch?v=55FQfnLFiWw&amp;amp;list=PLqeDK0HdRVdSy3kTa-NgmcSm-Ooh5JWQHکانال تلگرامی جهت اطلاع از دوره های جدید و نکات برنامه نویسی:@Learnira</description>
                <category>Reza Amini</category>
                <author>Reza Amini</author>
                <pubDate>Fri, 02 Jul 2021 12:54:02 +0430</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی و ستون فقرات !</title>
                <link>https://virgool.io/@rezi/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88-%D8%B3%D8%AA%D9%88%D9%86-%D9%81%D9%82%D8%B1%D8%A7%D8%AA-eynhbvohxajd</link>
                <description>یکم شاید عنوان مقاله براتون تعجب آور بوده اول ک ستون فقرات کجا برنامه نویسی کجا ولی بعدش خودتون حس کردید میخوام چی بگم الان.افرادی که ساعت های زیادی رو پشت سیستم هستند معمولا به مشکلات زیادی از جمله کمردرد و گردن درد و.. دچار میشن که برنامه نویس ها هم شامل این افراد میشن البته برنامه نویسا یکمم بیشتر!کار به جای خودش ، سلامتی هم به جای خودش...خب بیاید ببینیم دلیلش چیه؟!یکی از دلایل اصلیش بد نشستن و عادت های بد ما هستش و یکی دیگه از دلایل این ، امم خب نمیدونم منم که دلیل دیگش چیه، یعنی تخصص من نیست که بدونم!خب حالا چیکار کنیم؟نگران نباشید من راهشو پیدا کردم قبل شما و اینجا بود که تصمیم گرفتم با یک پزشک مصاحبه کنم و ازش مشاوره بگیرم ولی نه بصورت خصوصی بلکه بصورت یک پادکست که توی سایت پادکد قرار بگیره.توی این پادکست من با دکتر نوید مقدم که یکی از پزشکان فعال حوزه ستون فقرات هستش صحبت کردم و ایشون توضیحات بسیار خوب و جامعی در خصوص دلایل این مشکلات و راه حل های اون ارائه دادن که گوش دادن بهش قطعا خالی از لطف نیست و بسیار میتونه روی سلامتی شما در آینده موثر باشه.توی پادکست &quot;برنامه نویسی و ستون فقرات&quot; در خصوص این مورد کامل صحبت شده ، که پیشنهاد میکنم اصلا از دستش ندید.راستی میتونید توی پادکد پادکست های برنامه نویسی رو گوش بدید و ازشون استفاده کنید. قطعا خالی از لطف نیستند!</description>
                <category>Reza Amini</category>
                <author>Reza Amini</author>
                <pubDate>Sat, 06 Feb 2021 23:42:08 +0330</pubDate>
            </item>
                    <item>
                <title>شروع مسیر پرپیچ و خم برنامه نویسی</title>
                <link>https://virgool.io/@rezi/%D8%B4%D8%B1%D9%88%D8%B9-%D9%85%D8%B3%DB%8C%D8%B1-%D9%BE%D8%B1%D9%BE%DB%8C%DA%86-%D9%88-%D8%AE%D9%85-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-om5kxrzxusmi</link>
                <description>افراد وقتی که میخوان یه مهارت جدیدی رو یاد بگیرن معمولا سوالات زیادی در خصوص اون مهارت یا کار توی ذهنشون شکل میگیره که چطور شروع کنند، چه پارامتر هایی مهمه در طول این مسیر و ...این سوالات برای افرادی هم که میخوان برنامه نویسی رو شروع کنن پیش میاد و البته در تعداد بالاتر که باعث میشه افراد بیشتر گیج شن و دیرتر به مسیر یادگیری و شروع اون مهارت پا بزارن.امروزه برنامه نویسی یکی از شغل های ترند دنیا هستش که به نسبت درآمد خوبی هم داره و خیلی از افراد هم هستند که صرفا به جهت عشق و علاقشون به سیستم و کامپیوتر و.. میخوان وارد این کار بشن.وقتی که دیدم افراد برای شروع سوالات زیادی توی ذهنشون به وجود میاد و جواب های مختلفی رو هم میگیرن از بقیه تصمیم گرفتم که یک سری پادکست ضبط کنم و در خصوص شروع این مسیر پر پیچ و خم صحبت کنم که چطور میتونیم شروع کنیم، چه پارامتر هایی مهمه و به چه چیزایی نباید گوش بدیم و البته توی این پادکست یکسری حقایق رو گفتم که شاید از بقیه موقع دریافت راهنمایی نشنوید و افراد نسبت به شفاف سازی این قضایا خودداری کنند.توی این سری پادکست از سایت پادکد من در خصوص مقدمه شروع برنامه نویسی ، اهمیت سن و مدرک ، زبان انگلیسی و زبان شروع برنامه نویسی صحبت کردم که میتونید توی سایت پادکد به اونا گوش بدید.گوش دادن به پادکست شروع برنامه نویسی</description>
                <category>Reza Amini</category>
                <author>Reza Amini</author>
                <pubDate>Thu, 28 Jan 2021 15:24:36 +0330</pubDate>
            </item>
                    <item>
                <title>پنل مدیریت بدون دردسر برای لاراول</title>
                <link>https://virgool.io/@rezi/%D9%BE%D9%86%D9%84-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%B1%D8%AF%D8%B3%D8%B1-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-tg7whehyiwwh</link>
                <description>خیلی وقتا که میخوایم ی پنل مدیریت برای پروژه های لاراولیمون پیاده کنیم ، اگه خودمون بخوایم از صفر بنویسیم قطعااا زمان و انرژی زیادی رو ازمون میگیره، تازه نیازه که ما علاوه بر نوشتن کد های سمت پنل مدیریت ی سری کد برای اهراز هویت کاربر هم بنویسیم.منم یکی ازین افرادی بودم که این مشکلو همیشه داشتم و نوشتن پنل مدیریت برام عذاب بود، چقد باید مینشستم کد میزدم و وقتمو طلف میکردم و هی کپی پیست میکردم ازین پروژه به اون پروژه، خلاصه که آره ?.این اخرا یه پروژه داشتم و خب به خاطر علاقه ی زیادی که به Livewire داشتم تصمیم گرفتم برم سمتش و پنل رو با اون بنویسم، ولی خب هنوزم مشکلات زیادی رو داشتم ، باید از صفر مینوشتم همه چیزو (خلاصه کارم سخت ترم شده بود).تصمیم گرفتم این سختی رو به جون بخرم ولی خب ی چیزی بنویسم که بتونم همه جا استفاده کنم ، بعدش با خودم گفتم چرا فقط خودم همه جا استفاده کنم ؟ چرا بقیه هم همه جا استفاده نکنن ؟ چرا لاراول اصن ؟ چرا چی چی ؟و در نهایت شروع کردم ک ماژول رو به پکیج تبدیل کنم اما خب خیلی انعطاف پذیر تر و باحال تر :)اینجا بود که گیتهاب و من رفیق شدیم و شروع کردیم کار روی پنل مدیریت...خب دیگه زیاد داستان تعریف کردم بریم ببینیم اصن چی هستن این پنل که میگم (خیلی هیجان زده نشید اگه قلبتون ضعیفه ...)اسکرین شات از پنل مدیریتایزی پنل (کلا علاقه زیادی به کلمه ایزی دارم چون خودم تنبلم و چیزای ایزی رو ترجیح میدم :| ) یه پنل مدیریت باحال و سبکه که شما میتونید با دوتا دستور ساده نصبش کنید و شروع کنید کار باهاش.composer require rezaamini-ir/laravel-easypanel

php artisan install:adminخب تموم شد نصب شد، بریم پی زندگیمون...البته هنوز تموم نشده ، بیاید یکم در خصوص ویژگی های این پکیج بگم براتون :ساخت عملیات CRUD برای هر مدل در کانفیگشخصی سازی روت و آدرس پنلشخصی سازی اهراز هویت ادمین ها، نحوه ساخت ادمین و حذف ادمینولیدیشن اختصاصی برای هر فیلدولیدیشن ریل تایم با Livewireیک TODO ساده و باحال با قابلیت غیرفعال کردن ظاهر زیبا و شیکثبت ادمین و حذف ادمین با یک کامندقابلیت ساخت روت های اختصاصی و استفاده از میدلویر اختصاصی پنل مدیریت پجینیشنقابلیت سرچ بر اساس کلید هایی که خودتون پاس میدیدمدیریت و شخصی سازی کل ویو ها و کنترلر ساخته شده توسط پنل و قابلیت های زیاد دیگه که میتونید توی ریپو گیتهاب اونارو ببینید.بیاید باهم یه عملیات CRUD برای مقالات طراحی کنیم ( اگه بدون این پکیج باشه باید ی خروار کد بزنیم ? )خب بالاتر که پکیج رو نصب کردیم، حالا میریم و کانفیگ رو باز میکنیم و از قسمت actions بصورت دیفالت خودش ی نمونه ساده از مقالات برامون نوشته.&#039;article&#039; =&gt; [
    &#039;model&#039; =&gt; \App\Models\Article::class,

    &#039;search&#039; =&gt; &#039;title&#039;,
    &#039;create&#039; =&gt; true,
    &#039;update&#039; =&gt; true,
    &#039;delete&#039; =&gt; true,

    &#039;validation&#039; =&gt; [
        &#039;title&#039; =&gt; &#039;required&#039;,
        &#039;content&#039; =&gt; &#039;required|min:30&#039;,
    ],

    &#039;fields&#039; =&gt; [
        &#039;title&#039; =&gt; &#039;text&#039;,
        &#039;content&#039; =&gt; &#039;textarea&#039;,
        &#039;image&#039; =&gt; &#039;file&#039;
    ],

    &#039;show&#039; =&gt; [&#039;title&#039;, &#039;content&#039;],
],کلید show توی این ارایه نشون دهنده ایتم هایی هستش که توی لیست مقالات نشون داده میشن و fields هم اینپوت هایی هستن که میخوایم موقع ویرایش و ساخت مقاله داشته باشیم که بصورت key =&gt; value هستش که key ها میشن همون column های توی دیتابیس و value که نوع اینپوت هستن.حالا که اینو حل کردیم بیاید باهم کاراشو تکمیل کنیم ، فقط با یه کامند :php artisan crud:all articleو تموم شد ما یه پنل مدیریت داریم به همراه یه بخش برای مدیریت مقاله (1 دیقه هم نشد که )شما میتونید کل فایل ها و ویو هارو مدیریت کنید و اونارو شخصی سازی کنید، حالا این فایلا کجان ؟resources/views/livewire/admin // فایل های مربوط به ویو های CRUD 
resources/views/vendor/admin // فایل های مربوط به ویو های اصلی پنل
app/Http/Livewire/Admin // کنترلر های پنل مدیریت همه شو میتونید شخصی سازی کنید ( باحاله نه ؟ )تازه نیازی هم نیست خیلی خودتونو به زحمت بندازید برای ساخت ادمین و .. اگه نمیخواید کد بزنید ی کالمن دلخواه که مقدارش bool هستش رو بسازید توی تیبل یوزر ها و اسم اونو توی فایل کانفیگ وارد کنید، و بعدش میتونید با کامند های زیر ادمین اضافه یا حذف کنید ( تموم شد آقااااا )php artisan make:admin 1
php artisan delete:admin 1خب اینم پنل مدیریتی که اینقد غر میزدید براش، ساخته شد رفت پی کارش :)اینم آدرس ریپو گیتهاب : https://github.com/rezaamini-ir/laravel-easypanel⭐ یادتون نره استار بدید و اگه ایده ای دارید دست به کد بشید و Pull Request بزنید که لذت ببریم (اگرم حوصله کد نداشتید همینجا بگید اضافه میکنیم بهش) :)بزودی هم سیستم ACL و یک سیستم قویتر برای ساخت CRUD به پروژه اضافه میشه..</description>
                <category>Reza Amini</category>
                <author>Reza Amini</author>
                <pubDate>Thu, 12 Nov 2020 12:50:54 +0330</pubDate>
            </item>
                    <item>
                <title>نوشتن ساده تر یک ویو ( Blade ) در لاراول</title>
                <link>https://virgool.io/@rezi/%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AA%D8%B1-%DB%8C%DA%A9-%D9%88%DB%8C%D9%88-blade-%D8%AF%D8%B1-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-niapwqvxpdpc</link>
                <description>لاراول هر روز داره اپدیت میده و خودشو به روز نگه میداره ، ولی همچنان هم ی سری ضعف ها توی سیستم ویو هاش وجود داره ، اونم نبود بعضی Directive ها هستش که وجودشون میتونه کار مارو ساده تر کنه .همیشه از نوشتن کد های تکراری و استفاده از هلپر فانکشن های لاراول مثل route , url , asset و .. توی ویو های پروژه احساس خوبی نداشتم تا اینکه به ذهنم رسید که این هارو اضافه کنم به Engine Blade و خب این کار رو هم انجام دادم ولی خب تیلور جان عزیز موافق این کار نبود و گفت که فعلا نیازی نیس .. :((بخاطر همین مورد تصمیم گرفتم یه پکیج رو بنویسم که کار رو خیلی راحت تر میکنه برای نوشتن ویو ها توی لاراول .شما با پکیج EasyBlade دیگه نیاز نیس از ی سری کد های خام PHP وسط کدهاتون استفاده کنید و بعد از نصب این پکیج ی سری Directive باحال در اختیارتون قرار میگیره که میتونید ازش توی پروژه های خودتون استفاده کنید و از شر ی سری کدهای خام PHP وسط ویو خلاص شید.بیاید با هم ی چنتا از Directive های موجود توی این پکیج رو بررسی کنیم.اولین مورد دایرکتیو @route هستش ://Before : 
{{ route(&#039;home&#039;) }}

//After :
@route(&#039;home&#039;)که کار هلپر فانکشن route رو برامون انجام میده با این تفاوت که دیگه نیاز نیس هلپر فانکشن رو استفاده کنیم و مستقیما از دایرکتیو استفاده میکنیم.دومین مورد دایرکتیو @url هستش ://Before : 
{{ url(&#039;/&#039;) }}

//After :
@url(&#039;/&#039;)مورد بعدی @asset عه//Before : 
{{ asset(&#039;/img/header.png&#039;) }}

//After :
@asset(&#039;/img/header.png&#039;)خب تا اینجا چنتا دایرکتیو ساده رو داشتیم ، ی چنتا دیگه داریم که یکم خفن ترن از اینا :)))یکی از اون دایرکتیو های خفن ، دایرکتیو @isActive هستش، شما با این دایرکتیو میتونید چک کنید که آیا روت فعلی ای که داخلش هستیم برابر هست با روتی که بعنوان پارامتر به این دایرکتیو پاس دادیم ؟فرض کنید میخوایم اگه روت فعلی برابر با home یا dashboard بود بیاد و استرینگ active رو به کلس های یک المنت html اضافه کنه و اگر نبود استرینگ deactive رو چاپ کنه اونجا (آههه که چقد با این سر و کله میزدم و چقد سر هر پروژه براش کد PHP خام میزدم)خب بریم مورد بالارو پیاده کنیم با EasyBlade ، نترسید خیلی سخت نیس :@isActive([&#039;home&#039;, &#039;dashboard&#039;], &#039;active&#039;, &#039;deactive&#039;)آره فقط همین بود :) ، اگر پارامتر دوم خالی باشه خودکار active چاپ میشه و اگر پارامتر سوم هم خالی باشه  و پاس داده نشه نال رو پرینت میکنه.تا حالا شده که شرط بزارید اگه تعداد این آرایه مساوی یا بیشتر از 1 بود مثلا بیاد ی کاریو انجام بده ؟خب دیگه ازین به بعد نمیخواد زیاد زحمت بدید به خودتون فقط کافیه از دایرکتیو @count و @endcount استفاده کنید، به این صورت :@count($users, 1)    // Do Something ...@endcount

// It will compile to : 
if(count($users) &gt;= 1){
    // Do Something ...
}اصلا همه اینا به کنار این @user اش خیلی باحاله ، دیگه ی ساعت با auth سر و کله نزنید اگه ی مقدار از اطلاعات یوزر رو میخواید چاپ کنید فقط بنویسید :@user(&#039;name&#039;)خودش براتون مینویسه و خلاص ... ، نیاز نیس لاگین بودن کاربرو چک کنید خودش چک میکنه :)هنوز تموم نشده ، ما برای سشن ها هم ی سری دایرکتیو آماده کردیم:شما میتونید با @session مقدار یک سشن رو دریافت کنید، مثلا :@session(&#039;foo&#039;)برای مثال کد بالا میاد و چک میکنه که اگر سشن وجود داشته باشه مقدارش رو چاپ میکنه اگرم نه ازش میگذره.شما با دایرکتیو @sessionExists میتونید وجود یک سشن رو بررسی کنید و در صورت وجودش ی کاریو انجام بدید، مثلا :@sessionExists(&#039;foo&#039;)
    hello
@endsessionExistsتوی کد بالا اگر سشن foo وجود داشته hello رو چاپ میکنه ، به همین خوشمزگی :)امیدوارم ازین مقاله و پکیج خوشتون اومده باشه و داخل پروژه هاتون ازش استفاده کنید و به نشانه حمایت توی گیتهاب به ما استار بدید و حتی روش کار کنید تا باهم پیشرفته ترش کنیم :)راستی اینم آدرس ریپازیتوری گیتهاب پکیج :https://github.com/rezaamini-ir/laravel-easybladeاگه دایرکتیو باحالی به ذهنت میاد که پیادش نکردیم بهمون اطلاع بده ، قول میدم اگه شدنی باشه اضافش میکنیم یا اصلا اگه خودتون توانایی و دانششو دارید بسم الله ، Pull request بزنید و مارم خوشحال کنید (البته تست هم یادتون نره براش بنویسیداااا )</description>
                <category>Reza Amini</category>
                <author>Reza Amini</author>
                <pubDate>Wed, 14 Oct 2020 23:33:17 +0330</pubDate>
            </item>
            </channel>
</rss>