<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مهدی اردشیر</title>
        <link>https://virgool.io/feed/@mehdi0121</link>
        <description>Web Debeloper 
php-laravel-wordpress</description>
        <language>fa</language>
        <pubDate>2026-06-10 14:09:21</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/364483/avatar/VFYc8f.png?height=120&amp;width=120</url>
            <title>مهدی اردشیر</title>
            <link>https://virgool.io/@mehdi0121</link>
        </image>

                    <item>
                <title>گیت در لاراول</title>
                <link>https://virgool.io/@mehdi0121/%DA%AF%DB%8C%D8%AA-%D8%AF%D8%B1-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-ba6n3nxonaoo</link>
                <description>Gateگیت (Gate)یک قابلیتی است برای اعتبار سنجی دسترسی که با ان میتوان چک کرد که ایا این کاربر اجازه دارداین کار را انجام بدهد یا نهگیت در فارسی به معنای دروازه است گیت ها را میتوان در فایل AuthServiceProvider که مسیر ان App-&gt;Providers میباشد و در ان فایل دو متد وجود دارد  که ما گیت های خود را در متد boot تعریف میکنیمبرای استفاده از گیت باید فساد ان را اد کنیم تا بتونیم استفاده کنیم تعریف یک گیتدر جای name، نام گیت مورد نظر خود را مانند edit-user می نویسیم .با فراخوانی گیت مورد نظر تابع ناشناس اجرا وباید یک مقدار true یا false را برگرداندتوجه کنید  گیت ها فقط در صورتی کار میکنن که کاربر لوگین شده باشد و اینکه در پارامتر اول کاربر لوگین شده به صورت پیش فرض فرستاده می شود و ما می توانیم از ان استفاده کنیمدر Gate یک متدی به نام allows وجود دارد که با استفاده از ان می توان چک کرد که کاربر اجازه این کار را دارد یا نهخب همان طور که گفته بودم گیت ها مقدار true یا false پس از if برای تست استفاده میکنیمدر عکس بالا اگه کاربر دسترسی داشته باشه به این بخش کد های درونif و اگه نداشته باشه صفحه 403 نشون داده میشهخب بالا گفته بودم که خود گیت توی اولین پارامتر کاربر لوگین شده رومیفرسته حالا ما برای اینکه یک پارامتر دلخواه ارسال کنیم و بتونیم ازش استفاده کنیم از روش زیر استفاده میکنممثل عکس بالا پارامتر دوم رو توی تابع ناشناس اضافه میکنیم  و حالا برای اینکه به اون مقداری رو ارسال کنیم مثل عکس زیر یک پارامتر به متد allows اضافه میکنیمحالا برای اینکه یک پارامتر دیگه هم بفرسیتم نمی تونیم از روش بالا استفاده کنیم باید پارامتر هارو توی یه ارایه بفرستیم مثل عکس زیر و دریافت ان هم به شکل زیر هستحالا میخایم به صورت مثال یک گیت بسازیم وچک کنیم کاربری که لوگین کرده اجازه داره این پست رو تغییر بده یا نه خوب اول یک گیت تعریف میکنیم با اسم edit-post و دو پارامتر دریافت میکنیم اولیش کاربر لوگین شده و دومی اطلاعات پست و حالا داخل تابع ناشناسه چک میکنیم که ایا این پست برای این کاربر هست یا نهو حالا میایم از گیتی ک ساختیم استفاده میکنیم خب میرسیم به روش هایی که میتونیم از گیت استفاده استفاده کنیمروش بالا من متد allwos رو گفتم و  یک متد داریم برعکس  اون به اسم denies روش استفاده اش هم مثل allowsروش بعدی  authorize هست که فقط در کنترلر ها می شه ازش استفاده کرددر صورتی که کاربر دسترسی نداشته باشه ارور403 نشون داده میشهروش بعدی can هست که با استفاده از auth اون رو استفاده میکنیم و اینکه این روش مثل روش allows فقط true و false بر میگردونه همچنین  از can می تونیم توی blade هم استفاده کنیمدرضمن can هم مثل allows  برعکس میشه با @cannotفعلا :)</description>
                <category>مهدی اردشیر</category>
                <author>مهدی اردشیر</author>
                <pubDate>Fri, 10 Dec 2021 13:32:04 +0330</pubDate>
            </item>
                    <item>
                <title>پایان کار الکسا ؟</title>
                <link>https://virgool.io/@mehdi0121/%D9%BE%D8%A7%DB%8C%D8%A7%D9%86-%DA%A9%D8%A7%D8%B1-%D8%A7%D9%84%DA%A9%D8%B3%D8%A7-cjecyxwpme9b</link>
                <description>الکسا که یکی از سایت های پرقدرت در زمینه سئو هست و همچنین یکی از زیر مجموعه های آمازون هست. الکسا اعلام کرده که این سرویس از تاریخ ۱ می ۲۰۲۲ (اول اردیبهشت ۱۴۰۱) دیگر فعالیتی نخواهد داشت .الکسا پس از حدود 25 سال حضور در زمینه سئو می خواهد به کار خود پایان دهد هنوز مشخص نیست دلیل اصلی این کار چیست ولی اعلام کرده که در حال بازنشتگی هست و سرویس ان از تاریخ اعلام شده دیگر در دسترس نمیباشد.الکسا کار خود را از سال 1996 در زمینه رتبه بندی و انالیز سایت ها شروع کرد و در طی 3 سال به ارزش قابل توجهی دست پیدا کرد  که آمازون ان را به قیمت 250 میلیون دلار خریداری کرد .حالا باید دید که چه جایگزینی برای ان پیدا خواهد شد شاید امازون در حال ساخت یک جایگزین جدید و بهتری هست.</description>
                <category>مهدی اردشیر</category>
                <author>مهدی اردشیر</author>
                <pubDate>Fri, 10 Dec 2021 12:24:23 +0330</pubDate>
            </item>
                    <item>
                <title>ACL چیست</title>
                <link>https://virgool.io/@mehdi0121/acl-oylbjlv0wba9</link>
                <description>سلام دوستان امیدوارم خوب باشید امروز قرار درباره acl صحبت کنم .بیشتر ما ها در جاهای مختلف این سیستم را دیده ایم ولی زیاد به ان دقت نکردیم و بقیه دوستانی که دقت کردن مایل بودن بدونن که چجوری باید این سیستم را راه اندازی کننACL چیست Access Control Listلیست کنترل سطح دسترسیهمان طور که گفتم بیشتر جا ها ما به اون برخورد کردیم مثل تلگرام وسایت های مختلف و...حتما میدونید که پنل یا کارهایی که افراد مختلف در سایت انجام میدن فرق میکنهمثلا  مدیر سایت باید به کل سایت دسترسی داشته باشهویراستار باید به بخش مقالات دسترسی داشته باشهو مسئول محصولات باید به بخش کنترل محصولات دسترسی داشته به صورت منطقی  ویراستار نباید به بخش محصولات و مسئول محصولات نباید به بخش مقالات دسترسی داشته باشه و اینکه هر کدام از افراد به غیر از مدیر نباید به بخش های غیر مرتبط مسئولیت خود دسترسی داشته باشندنحوه پیاده سازی اول باید یک جدول به نام دسترسی ها (Permissions) برای ذخیره کردن دسترسی ها ایجاد کنیم که باید دارای 3 ستون باشد اول ایدی (id) - دوم نام دسترسی (name) و سوم توضیح دسترسی (lable) جدول دسترسی هابعد از پیاده سازی جدول بالا باید یک جدول به عنوان واسط بین کاربران و دسترسی ها داشته باشیم تا دسترسی های کاربر در ان ذخیره شود.این جدول باید 2 ستون داشته باشد اولین ستون نام ان به، صورت مثال باید user_id باشد  و این ستون باید به جدول user و ستون ایدی(id) وصل شود و رابطه داشته باشدبرای ستون دوم هم مثل بالا باید  یک ستون به نام permission_id ایجاد کنید و ان را به جدول دسترسی ها (permissions) و ستون ایدی (id) متصل کنیم جدول واسط بین کاربر و دسترسی هادر اینجا منظور از دسترسی به، صورت مثال مشاهده کاربران،ویرایش کاربران،ویرایش مقاله ،حذف مقاله ،افزودن محصول و... هستخوب الان وقتی ما بخواهیم یک کاربر را ویراستار کنیم باید به ان دسترسی های ویرایش مقاله،حذف مقاله و ... را بدهیم و ممکن است بخاطر زیاد بودن دسترسی ها طول بکشد بخاطر همین از گروه ها یا مقام ها استفاده میکنم  و به صورت مستقیم به جای اینکه تکی تکی دسترسی بدهیم یک مقام به اون می دهیم که در ان دسترسی های لازم یک ویراستار اعم از ویرایش مقالات و افزودن مقالات و... وجود داردیه جدول مثل جدول  دسترسی ها با نام مقام ها (roles) با ستون های  ایدی (id)- دوم نام مقام(name) و سوم توضیح مقام(lable)  میسازیمجدول مقام هاحالا باید یه جدول واسط بین مقام و دسترسی ها بسازیم که تعریف کنیم این دسترسی برای این مقام است  خوب اولین ستون جدول واسط  role_id است که به  جدول مقام ها و ستون id به ان وصل شود و رابطه ایجاد شود. ستون دوم هم به نام permission_id که باید  به جدول دسترسی ها و ستون id ان وصل و رابطه ایجاد شوددر قدم بعدی باید یک جدول واسط دیگر بین مقام ها (roles) و   کاربران(users) ایجاد کنیم تا تعیین کنیم این کاربر چه مقام هایی داردمانند بالا یک ستون به اسم user_id که به جدول کاربران و ستون ایدی متصل شده و رابطه ایجاد شدهستون دوم هم به اسم role_id که به جدول مقام ها و ستون ایدی متصل شده و رابطه ایجاد شدهجدول رابط بین مقام و کاربر تئوری acl به این شکل بودحالا با استفاده از روابط ایجاد شده بین جداول الان میتوانید چک کنید که کاربر به این بخش دسترسی داره یا نهسعی کردم به صورت ساده توضیح بدم  و اگر نکته جدیدی  پیدا کردم براتون در اینجا به اشتراک میذارمو اینکه اگه در اینده وقت کردم مثال پیاده سازی acl رو توی لاراول می نویسم و سورسش رو براتون اپلود میکنم </description>
                <category>مهدی اردشیر</category>
                <author>مهدی اردشیر</author>
                <pubDate>Fri, 10 Dec 2021 12:08:16 +0330</pubDate>
            </item>
                    <item>
                <title>تبدیل گوشی به میکروفون در کامپیوتر</title>
                <link>https://virgool.io/@mehdi0121/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%DA%AF%D9%88%D8%B4%DB%8C-%D8%A8%D9%87-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%D9%81%D9%88%D9%86-%D8%AF%D8%B1-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-geo7zcxfdh7q</link>
                <description>سلام دوستان  متاسفانه با این قیمت دلار  شرایط خیلی سخته شده و با وجود ویروس کرونا سخت تر هم شدهیکی از مشکلاتی که گیمر ها داشتنن ، نداشتن میکروفون بود، برای  صحبت کردن در بازی یا  نرم افزار های ارتباط جمعی مانند تیم اسپیک یا دیسکورد حتما باید میکروفون داشته باشید و از یک طرف دیگه با انلاین شدن کلاس ها و  پافشاری بعضی از اساتید ک حتما باید میکروفون داشته و باید سرکلاس صحبت کنید اول نوشته هم گفتم که بخاطر قیمت دلار تهیه میکروفون خوب هزینه زیادی داره که ممکنه بعضی از افراد توان پرداختی رو نداشته باشندر همین جهت یه نرم افزاری به اسم wo mic  هست که گوشی همراه شمارو تبدیل به میکروفون  میکنه درسته ک کیفیت یه میکروفون خوب و حرفه ایی رو نداره ولی در کل کارتون رو راه میندازه لینک صفحه نرم افزار ک توش هم لینک دانلود برنامه گوشی و نرم افزار کامپیوتر هم هست خب نصبش هم مثل نرم افزار های دیگه هست نکست نکست و تمام :)و بعد از نصب وارد برنامه بشین wo mic firstحالا مثل عکس بالا گزینه ی connection رو انتخاب کنید و گزینه connect رو بزنید حالا شما به انتخاب خودتون می تونید با استفاده از قابلیت هایی که گفته وصل شین به گوشی خودتون ولی پیشنهاد من و گزینه انتخابی که خودم استفاده میکنم از طریق usb هست ممکنه نیاز باشه تا درایور wo mic رو نصب کنیبعد حالا باید گزینه برنامه نویسی رو توی گوشی خودتون فعال کنید برای فعال سازی به درباره تلفن برید و 7 بار روی گزینه شماره ساخت کلیک کنید تا پیام مبنی بر اینکه شما توسعه دهنده  هستید بیاد و حالا در منوی تنظیمات یه گزینه جدید اضافه میشه از داخل این بخش گزینه اشکال زدایی USB رو فعال کنیدگوشی رو به کامپیوتر وصل کنید طبق عکس بالا  روی گزینه ی ک نشون داده شده کلیک کنید بعد از اینکه گزینه کلیک کردی باید این نوشته بیادحالا از داخل کامپیوتر دکمه connect رو بزن بعدشم سریع از داخل گوشی تایید کن بعد از اینکه وصل شد باید پایین صفحه connected زده باشه دوستان این روش ممکنه برای همه کار نکنه و مشکلاتی داشته باشنولی برای من و دوستانم کار کرد سال خوبی داشته باشید :)</description>
                <category>مهدی اردشیر</category>
                <author>مهدی اردشیر</author>
                <pubDate>Sun, 08 Nov 2020 13:41:52 +0330</pubDate>
            </item>
            </channel>
</rss>