<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سیما</title>
        <link>https://virgool.io/feed/@simanouri</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-04-14 22:20:04</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>سیما</title>
            <link>https://virgool.io/@simanouri</link>
        </image>

                    <item>
                <title>بلوبانک چیست و کد معرف بلو بانک</title>
                <link>https://virgool.io/@simanouri/%D8%A8%D9%84%D9%88%D8%A8%D8%A7%D9%86%DA%A9-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%A9%D8%AF-%D9%85%D8%B9%D8%B1%D9%81-%D8%A8%D9%84%D9%88-%D8%A8%D8%A7%D9%86%DA%A9-kphhqekpffkd</link>
                <description>کد معرف بلوبانک رایگان : MGXYTAسلام بچه ها چطورییین  امروز اومدم در مورد بلوبانک بهتون بگم که فک میکنم خیلی جاهای دیگم تو استوریا و اینستا دیده باشین که حرفشه بلوبانک اولین نئو بانک که توی ایران شروع به کار کرده یه بانک دیجیتالیه که شعبه فیزیکی نداره اصلا یعنی نیازی به رفتن به بانک ندارین همه کار های بانکی رو با اپلیکیشن میتونین انجام بدین هر چقدر بخواین میتونین وجه انتقال بدین سپرده های بانکی شما تو بانک سامان نگهداری میشه که مورد تضمین صندوق ضمانت سپرده های بانک مرکزی هستشحتی این قابلیتم داره که با اسکن کد qr با گوشیتون پرداخت رو انجام بدین بدون نیاز به کارت کشیدن و این کارا افتتاح حساب تو بلو بانکم هیچ هزینه ای نداره و برای ثبت نام  باید اپلیکیشنش رو نصب کنید که لینک سایتشو میزارم  و حتما باید کد معرف داشته باشین تا بتونید ثبت نام کنین به هر نفر تعداد محدودی کد معرف میدن بعد از ثبت نام منتظر میمونین تا براتون اس ام اس تایید بیاد میتونید طرح و رنگ کارتتون انتخاب کنید کد پستی میدین براتون میفرستن و میتونید فعالش کنین از داخل اپ و ازش استفاده کنین اهان اینم بگم که اگ ثبت نام کنین و دوستاتون دعوت کنید که بیان به بلو بانک به ازای هر نفر بلو بانک بهتون ۳۰هزار تومن هدیه میده  </description>
                <category>سیما</category>
                <author>سیما</author>
                <pubDate>Fri, 02 Jul 2021 05:53:46 +0430</pubDate>
            </item>
                    <item>
                <title>اس اس ال چیست و  چگونه از آن در  وبسایتمان استفاده اش کنیم؟ SSL</title>
                <link>https://virgool.io/@simanouri/%D8%A7%D8%B3-%D8%A7%D8%B3-%D8%A7%D9%84-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D8%B2-%D8%A2%D9%86-%D8%AF%D8%B1-%D9%88%D8%A8%D8%B3%D8%A7%DB%8C%D8%AA%D9%85%D8%A7%D9%86-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B4-%DA%A9%D9%86%DB%8C%D9%85-ssl-b3tvbuwcolmd</link>
                <description>sslsslچیست؟SSL مخفف Secure Socket Layer به معني «لايه اتصال امن» و مجموعه اي از قوانين جهت برقراري ارتباطات ايمن ميان سرويس دهنده و سرويس گيرنده در اينترنت است.اطلاعاتي که در حالت عادي بين کاربران و دنياي اينترنت رد و بدل مي شوند، به گونه اي هستند که يک هکر يا خراب کار حرفه اي مي تواند آنها را ببيند و براي اهداف خود مورد سواستفاده قرار دهد. مثلا در يک خريد اينترنتي، زماني که قصد داريد براي پرداخت به حساب بانکي خود وارد شويد، سايت از شما رمزعبور مي خواهد. حال اگر سايت مورد نظر فاقد برنامه هاي امنيتي لازم باشد، ممکن است اطلاعات شما در ميانه راه بدون آنکه متوجه شويد، دزديده شوند و اگر بد شانس باشيد چند روز بعد که به حساب تان سر مي زنيد آن را خالي شده مي يابيد.اطلاعات معمولاً کي و کجا دزديده مي شوند؟زماني که آدرس يک سايت را در مرورگر وارد مي کنيم اطلاعات بين کامپيوتر ما و کامپيوتري که سايت روي آن قرار دارد (سرور) در حال رد و بدل هستند. پس اگر بتوانيم به طريقي ارتباط بين کامپيوتر خود و کامپيوتر سرور را امن کنيم اطلاعات ما دزديده نخواهند شد.اطلاعات در اينترنت - درست مثل فرستادن يک نامه- به صورت فايل هاي متني جابجا مي شوند. همان طور که يک نامه از زماني که در صندوق پست گذاشته مي شود تا زماني که به صاحبش مي رسد در دست افراد مختلفي قرار مي گيرد، به همان صورت نيز اطلاعات ما توسط سيستم هاي زيادي دست به دست مي شود تا به سايت يا شخص مورد نظر مي رسد. اگر اطلاعات به صورت عادي فرستاده شوند، هر کدام از سيستم هاي بين راه مي توانند آنها را ببينند. پس براي جلوگيري از خوانده شدن و سرقت احتمالي، بايد آنها را رمزگذاري کرد.اين پروتکل براي امن کردن پروتکل هاي غيرامن نظيرHTTP ،LDAP ، IMAP و ... استفاده مي شود. بر اين اساس يکسري الگوريتم هاي رمزنگاري بر روي داده هاي خام که قرار است از يک کانال ارتباطي غيرامن مثل اينترنت عبور کنند، اعمال مي‌شود و محرمانه ماندن داده‌ها را در طول انتقال تضمين مي‌کند.به بيان ديگر شرکتي که صلاحيت صدور و اعطاء گواهي هاي ديجيتال اس اس ال را دارد، براي هر کدام از دو طرفي که قرار است ارتباطات ميان شبکه‌اي امن داشته باشند، گواهي‌هاي مخصوص سرويس دهنده و سرويس گيرنده را صادر مي‌کند و با مکانيزم هاي احراز هويت خاص خود، هويت هر کدام از طرفين را براي طرف مقابل تأييد مي‌کند. البته علاوه بر اين تضمين مي کند، اگر اطلاعات حين انتقال به سرقت رفت، براي رباينده قابل درک و استفاده نباشد که اين کار را به کمک الگوريتم هاي رمزنگاري و کليدهاي رمزنگاري نامتقارن و متقارن انجام مي‌دهد.براي داشتن ارتباطات امن مبتني بر اس اس ال عموماً به دو نوع گواهي ديجيتال اس اس ال، يکي براي سرويس دهنده و ديگري براي سرويس گيرنده نیاز استوظيفه آن ها اين است که هويت طرفين ارتباط، نشاني ها، حساب هاي بانکي و تاريخ انقضاي گواهينامه را بداند و براساس آن ها هويت ها را تعيين نمايد.مشتری های شما به وب سایت شما بدون گواهینامه ssl اعتماد نمی کنند. بر طبق تحقیقات ، نزدیک ۷۰% از خریداران آنلاین خریدشان را فسخ می کنند چون به آن معامله اعتماد ندارند. در آن موارد ، ۶۴% نشان دادند که حضور یک مارک اعتماد باعث می شود که آن معامله را فسخ نکنند. یک گواهینامه ی ssl می تواند باعث شود که مردم وب سایت شما را رها نکنند و معنی این پول بیشتر برای شماست.توضیحی ساده برای مفهوم کردن روش رمز گذاریبرای مثال مي دانيم که هر حرف در الفبا جايگاهي دارد. مثلا حرف «الف قبل از ب» و «حرف م قبل از ن» قرار دارد.حال، اگر بخواهيد يک جمله را به رمز در آوريد. در ساده ترين شکل ممکن، هر حرف را با حرف بعدي خود در الفبا جايگزين مي کنيد.يعني به جاي «الف» حرف «ب»، به جاي «ب» حرف «پ»، ... ، به جاي «ه» حرف «ي» و به جاي حرف «ي» حرف «الف» را مي گذاريد.با اين کار مي توان جمله «بابا آب داد» را به جمله بي معني «پبپب بپ ذبذ» تبديل کرد که اگر فردي کليد رمز را نداشته باشد، به هيچ وجه از آن سر در نمي آورد.چطور می توان گواهینامه های  ssl را بین متصدیان گواهینامه مقایسه کرد؟گواهینامه های Verisign بهتر هستند، چون هزینه ی آنها خیلی زیاد است ، درسته؟نه لزوما”.شما می توانید یک گواهینامه را با ۱۰۰ دلار بگیرید که دقیقا” همان چیزهایی را داشته باشد که یک گواهینامه ی ۸۰۰ دلاری از یک متصدی گواهینامه دیگر دارد.این دقیقا” همان رمزگذاری ssl است.چرا تفاوت؟اعتماد بزرگترین تفاوت است. چون Verisign  قدمت بیشتری از سایر متصدیان گواهینامه دارد ، بیشتر مردم به آن ها اعتماد دارند بنابراین آنها می توانند مسئولیت بیشتری داشته باشند. در واقع شما اساسا” پول برند را می پردازید.مهر و موم  sealاعتماد چیست؟ (لوگوی اعتماد)مهر و موم اعتماد یک لوگو است که شما می توانید آن را روی وب سایت خود نمایش دهید تا تأیید کند شما بوسیله ی یک ارائه دهنده ی گواهینامه ویژه اعتبار سنجی شده اید و از گواهینامه  sslآن ها برای امن ساختن سایت خود استفاده می کنید. این لوگو می تواند روی صفحات امن و نا امن نمایش داده شود و برای صفحاتی که مشتری اطلاعات شخصی خود را وارد می کند خیلی مناسب است ، مانند صفحه ی خرید. اما شما میتوانید این لوگو را در هر صفحه ای که به ساختن اعتماد کمک می کند نمایش دهید. مهر و موم اعتماد هر متصدی گواهینامه متفاوت است و بعضی از آنها ممکن است خیلی حرفه ای به نظر برسند بنابراین شما باید در نظر بگیرید چه مهر و موم اعتمادی، اعتماد مشتریان شما را به حد اکثر می رساند.پروتکل دست دادن در SSLاین عمل به منظور احرازاصالت دوطرف و توافق روی الگوریتم‌ها و کلیدهای رمزگذاری است و به لایه دوم مربوط است و قبل از هر انتقال داده بین دو طرف این پروتکل صورت می‌گیرد. این پروتکل پیچیده‌ترین پروتکل SSL است که یکسری پیام دارد که بین دوطرف ارتباط مبادله می‌شود. هر پیام شامل نوع پیام، طول پیام به بایت و محتوای پیام است. این پروتکل دارای ۴ مرحله است.مرحله ۱: برقراری قابلیت‌های امنیتیاین مرحله به منظور آغاز یک اتصال منطقی برای معین کردن قابلیت‌های امنیتی مربوط به آن اتصال است.مرحله ۲: احراز اصالت و تبادل کلید سروردر این مرحله حداکثر ۴ پیام از طرف سرور به کلاینت ارسال می‌شود که ۳ تا از آن‌ها اختیاری است. پیام اول شامل گواهی سرور است. پیام دوم مربوط به تبادل کلید از طرف سرور است. پیام سوم در صورتی که سرور مخفی نباشد ممکن است از سرور به کلاینت ارسال می‌شود. پیام چهارم که حتماً باید ارسال شود پارامتری ندارد و بیان‌کننده پایان ارسال پیام مرحله دوم است.مرحله ۳: احرازاصالت و تبادل کلید کلاینتدر این مرحله ۳ پیام از کلاینت به سرور ارسال می‌شودکه فقط یکی از آن‌ها اجباری است.مرحله ۴: پایاندر این مرحله طرفین با ارسال مشخصات رمزکننده وضعیت جدید رمز خود را اطلاع می‌دهند و سپس با ارسال پیام پایانی، پروتکل دست دادن را پایان می‌دهند.تفاوت ssl  رایگان و پولیتفاوت اصلی ssl های رایگان و پولی چیه؟مهم ترین تفاوت SSL های رایگان و پولی در (( مدت زمان استفاده از گواهینامه SSL((می باشد:در SSL های رایگان حداکثر زمان استفاده 3 ماه می باشد.در SSL های غیر رایگان حداقل مدت زمان استفاده 1 سال می باشد .تفاوت های دیگری هم بین SSL رایگان و غیر رایگان وجود دارد که به نظر من این‌ها عیب های SSL های رایگان نیستند، بلکه این ها مزایای SSL های پولی هستند، که اگر بخواهم به برخی از این مزایا اشاره کنم، میتوانم به موارد زیر اشاره کنم :برخی از گواهینامه های امنیتی غیر رایگان قابلیت استفاده روی بی نهایت ساب دامنه را دارند ، که اصطلاحا به این نوع گواهینامه ها Wildcard می گویند .گواهینامه های غیر رایگان دارای انواع بیشتری می باشد ، به طور کلی گواهینامه های غیر رایگان در سه نوع (DV ، OV و EV) ارائه می شوند که گواهینامه DV پایه ترین گواهینامه امنیتی پولی می باشد و EV بهترین گواهینامه امنیتی می باشد.در گواهینامه های EV علاوه بر قفل سبز رنگ یا نماد SSl نام شرکت نیز درج می شود، که نشان دهنده این هست که سایت مورد نظر از قابل اعتماد ترین گواهینامه امنیتی استفاده نموده است، البته به این نکته هم اشاره کنم که معمولا گواهینامه های ev خیلی گران تر از گواهینامه های DV می باشد.تضمینی در خصوص ضریب امنیتی دارند. به همین جهت وارانتی ارائه می کنند.دارای پشتیبانی از سمت شرکت ارائه دهنده می باشند.برخلاف گواهینامه های رایگان که کد CSR یا همان کد شناسایی SSL غیرقابل سفارشی‌سازیست، در گواهینامه های پولی CSR قابل سفارشی‌سازیست و SSL با اطلاعات سایت صادر می‌شود.در سئو امتیاز بیشتری خواهد داشت.گواهینامه SSL رایگان برای چه نوع وب سایت های مناسب است؟تقریبا SSL رایگان برای ابتدای فعالیت تمامی وب سایت ها میتواند مناسب باشد، فرضا شما میخواهید یک وب سایت رو تازه راه اندازی کنید و در مراحل اولیه کار هستید و تا چند ماه اول که در مرحله تست و بررسی هستید به نظرم این SSL برایتان مطمئنا بهترین گزینه هست.حتی بعد از مراحل اولیه سایت هم میتوانید از این گواهینامه استفاده نمایید، مگر این که برای شما اعتبار و امنیت خیلی مهم باشد و یا سایت شما متعلق به سازمان و ارگان خاصی مثل بانک،دانشگاه و... باشد.اگر به دنبال گواهینامه ارزان قیمت هستید و فقط میخواهید https داشته باشید نیز این گواهینامه برای شما بهترین گزینه خواهد بودنحوه ی نصب ssl  رایگانبرای نحوه یادگیری نصب ssl میتوانید به این ادرس مراجعه کنیدمنابعوبوپدیانسخه انگلیسی همین موضوع در ویکی‌پدیاابزار بررسی تنظیمات اس اس ال</description>
                <category>سیما</category>
                <author>سیما</author>
                <pubDate>Mon, 17 Aug 2020 13:29:50 +0430</pubDate>
            </item>
                    <item>
                <title>استفاده از seed ها در لاراول</title>
                <link>https://virgool.io/laravel-community/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-seed-%D9%87%D8%A7-%D8%AF%D8%B1-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-e46sheoplgke</link>
                <description>laravel seederلاراول همچنین از یک روش ساده برای پرکردن اطلاعات تستی در جداول شما استفاده میکنند . تمامی کلاس های seed شما در مسیر database/seeds ذخیره میشوند ، میتوانید برای کلاس های  seed از هر نامی استفاده نمایید اما از قواعد نامگذاری لاراول نیز باید پیروی کنید .که این قانون به شما میگویید که برای نام گذاری seed ها اول اسم جدول سپس کلمه table سپس کلمه seeder استفاده کنید  برای مثال  UsersTableSeederبه منظور ایجاد کلاسseeder، لازم است دستور زیر را در cmd  بنویسیدphp artisan make:seeder    نام seedبه صورت پیش فرض، کلاس seeder تنها یک متد به نام run را شامل می شود .در بدنه ی متدrun می توان داده های مورد نظر را به روش دلخواه در پایگاه داده درج کرد.داده ها را می توان به صورت دستی با بهره گیری از query builder وارد پایگاه داده کرد یا آن ها را به وسیله ی Eloquent model factory در داخل بانک اطلاعاتی درج نمود. در زیر کلاس پیش فرضDatabaseSeeder که با نصب Laravel آماده در اختیار برنامه نویس قرار می گیرد را ویرایش می کنیم. برای این منظور یک دستور insert ساده به متدrun اضافه می کنیم:&lt;?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;

class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table(&#039;users&#039;)-&gt;insert([
&#039;name&#039; =&gt; Str::random(10),
&#039;email&#039; =&gt; Str::random(10).&#039;ادرس ایمیل&#039;,
&#039;password&#039; =&gt; Hash::make(&#039;پسورد&#039;),
]);
}
}در این کد ما از DB و hashوstr  استفاده کردیم پس باید دستور use آن ها را در بالا بنویسیم سپس در متد run  گفته ایم در تیبل users به صورت رندم نام و ایمیل و پسورد تولید کند  به صورت string  و برای پسورد برای رمزنگاری آن که راحت هک نشود از کلاس hash با متد make  استفاده کردیم فراخوانی کلاس های Seeder بیشترمتد call را در کلاس DatabaseSeeder برای اجرای دیگر کلاس های seed فراخوانی کنید. فراخواندن این متد سبب می شود کلاس هایseedبه فایل های متعدد کوچکتر تقسیم شده و هیچ یک از کلاس ها بیش از حد بزرگ نشود. کافی است اسم کلاسseeder مورد نظر را بهrun پاس دهید به طور مثال:/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this-&gt;call([
UserTabelSeeder::class,
PostTabelSeeder::class,
]);
}وقتی کهseeder خود را نوشتید ممکن است لازم باشدautoloader  composer  خود را بازسازی کنید در ان زمان ازدستور زیر در cmd استفاده میکنیدcomposer dump - autoloadپس از تعریف کلاس هایseeder، می توانید دستور آرتیزانdb:seed را برای داده ریزی (قرار دادن داده های آزمایشی) در پایگاه داده اجرا کنید.کلاس DatabaseSeeder را اجرا می کند که به واسطه ی آن تمامی دیگر کلاس های seed نیز فراخوانده می شوند.php artisan db:seedمی توان این کلاس ها را به صورت منفرد هم اجرا کرد. برای نیل به این هدف لازم است گزینه ی --class را با اسم کلاس دلخواه مقداردهی نمایید:php artisan db:seed --class=UserTableSeederمی توانید پایگاه داده ی خود را با فراخوانی دستور migrate:refresh با داده های آزمایشی پر کرده، بعلاوه آن را یکجا به پیش از اعمال آخرین تغییرات برگردانید (rollback) و نیز تمامی migration های خود را مجددا اجرا کنید. استفاده از این دستور بیشتر زمانی توصیه می شود که بخواهید یک پایگاه داده را کاملا از نو بسازید:php artisan migrate:fresh --seedبرای دانستن اطلاعات بیشتر  در مورد db:seed میتوانید در cmd دستور زیر را بزنید php artisan help db:seedاین دستور  help به شما اپشن های بیشتر برای استفاده را به شما نشان میدهدOptions:
      --class[=CLASS]               The class name of the root seeder [default: &amp;quotDatabaseSeeder&amp;quot]
  --database[=DATABASE]      The database connection to seed
      --force                               Force the operation to run when in production
  -h, --help                                Display this help message
  -q, --quiet                               Do not output any message
  -V, --version                           Display this application version
      --ansi                                 Force ANSI output
      --no-ansi                            Disable ANSI output
  -n, --no-interaction                Do not ask any interactive question
  --env[=ENV]                          The environment the command should run under
  -v|vv|vvv, --verbose               Increase the verbosity of messages: 1 for normal output, 2 for 
                                               more verbose output and 3 for debugمنبع: https://laravel.com/docs/7.x/seeding</description>
                <category>سیما</category>
                <author>سیما</author>
                <pubDate>Mon, 10 Aug 2020 13:57:39 +0430</pubDate>
            </item>
                    <item>
                <title>تبدیل تاریخ میلادی به تاریخ شمسی و برعکس در لاراول</title>
                <link>https://virgool.io/@simanouri/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C-%D8%A8%D9%87-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B4%D9%85%D8%B3%DB%8C-%D9%88-%D8%A8%D8%B1%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-ntlrlryogwyg</link>
                <description>تبدیل تاریخ میلادی و شمسی در لاراولحتما برای شما پیش آمده که موقع ساختن یک وب اپلیکیشن با تبدیل تاریخ میلادی به شمسی یا برعکس درگیر شده باشید، و باید بگویم نوشتن یه اسکریپت به زبان php  که بتواند این تبدیل هارو برای ما انجام بدهد واقعا کار وقت گیر و سختی هست، تازه اگه کار ما با تاریخ در حد همین تبدیل ساده باشد و اگه بخواهیم یکسری محاسبات هم روی آنها انجام بشود و خیلی کارهای دیگر کار از این هم سخت تر میشود ،که این پکیج فوق العاده میتواند در یک چشم بهم زدن برایمان انجام بدهدبرای حل این مشکل ابتدا به این ادرس لینک میرویم به دو روش میتوانیم پکیج جلالی را نصب کنیم اولی به صورت دستی است که فایل زیپ پکیج را دانلود کرده و در پوشه پروژه خود به پوشه vendor اضافه میکنیدمراحل دانلود پکیج جلالی برای لاراولروش دوم این است که دستور زیر رو در cmd وارد کنید:این دستور نیازمند لاراول ورژن 7 و بالا است $ composer require morilog/jalali:3.*دستور زیر برای  لاراول  با ورژن &gt;=5 &amp; &lt; 6.0است$ composer require morilog/jalaliسپس طبق دستورات پکیج جلو میرویم ((در پروژه لاراول خود به پوشه config رفته و app.php را باز کرده در بخش Providers خط زیر را در انتها نوشته ها بنویسید.Morilog\Jalali\JalaliServiceProvider::class,سپس در قسمت alias نیز این خط را به انتها اضافه کنید&#039;jDate&#039; =&gt; Morilog\Jalali\Facades\jDate::class نکته:توجه داشته باشید اگر پکیج را به صورت دستی وارد پروژه کرده اید چون نام پوشه متفاوت است با روش دوم که همان دستور کمپوزر است به جای Morilog\Jalali باید نام پوشه که jalali-master  است را بنویسید))توجه:اگر شما لاراول با ورژن 7 دارید نیازی به انجام  کار های بالا ندارید.حال که نصب پکیج تمام شد به پوشه appسپسhttpسپس controller میرویم اول باید یک کنترلر بسازیم به cmd رفته و دستور زیر را مینویسیمphp artisan make:controller نام کنترلرهمانطور که میدانید برای نام کنترلر باید از حتما از کلمه controller  در انتهای نام  استفاده کنید و اولین حرف کلمات را با حرف بزرگ بنویسید مانند SiteControllerهر زمانی که از پکیجی یا کلاسی  استفاده میکنیم  باید با دستور use آن را به کنترلر پیوند بدهیم پس دستور زیر را در کنترلر مینویسیمuse morilog/jalali/jdate; سپس دیتابیس را چک کنید که مطمن شوید سطری دارید که در آن تاریخ  ثبت شده باشدبعد به پوشه روت ها میرویم و تعریف میکنیم که به فلان ادرس url  وقتی رفتیم از فلان کنترلر این فانکشن را اجرا کن با دستورrout::get(&#039;/ URL  &#039;,&#039;نام فانکشن@نام کنترلر &#039;)بعد فانکشنمان را مینویسیم public function user() {$text=auth::user() -&gt;created_at;
$date = jDate::forge(&#039;$text&#039;) -&gt;format(&#039;datetime&#039;);
echo $date;
}البته یادمان نرود که دستور های use  برای user و auth  را چون در کد ها استفاده کردیم حتما در کنترلر قرار دهیم use user;use auth;در کد های بالا ما تابعی به نام user  ساختیم و در آن خواستیم که در دیتا بیس از تیبل user  ستون created_at را بخواند ودر text قرار دهد سپس text$ را با jdate  تبدیل به شمسی کردیم و در date$ قرار دادیم و با format خواستیم که به ما مدل نمایش تاریخ را به چه صورت نمایش دهد سپس ان را چاپ کردیماگر شما از لاراول 7 استفاده میکنید به جای jdate  از کلمه jalalian استفاده کنید کد های نمونه های دیگر نمایش تاریخ  برای لاراول 7// the default timestamp is Now
$date = \Morilog\Jalali\Jalalian::now()
// OR
$date = jdate();

// pass timestamps
$date = Jalalian::forge(1333857600);
// OR
$date = jdate(1333857600);

// pass human readable strings to make timestamps
$date = Jalalian::forge(&#039;last sunday&#039;);

// get the timestamp
$date = Jalalian::forge(&#039;last sunday&#039;)-&gt;getTimestamp(); // 1333857600

// format the timestamp
$date = Jalalian::forge(&#039;last sunday&#039;)-&gt;format(&#039;%B %d، %Y&#039;); // دی 02، 1391
$date = Jalalian::forge(&#039;today&#039;)-&gt;format(&#039;%A, %d %B %y&#039;); // جمعه، 23 اسفند 97

// get a predefined format
$date = Jalalian::forge(&#039;last sunday&#039;)-&gt;format(&#039;datetime&#039;); // 1391-10-02 00:00:00
$date = Jalalian::forge(&#039;last sunday&#039;)-&gt;format(&#039;date&#039;); // 1391-10-02
$date = Jalalian::forge(&#039;last sunday&#039;)-&gt;format(&#039;time&#039;); // 00:00:00

// get relative &#039;ago&#039; format
$date = Jalalian::forge(&#039;now - 10 minutes&#039;)-&gt;ago() // 10 دقیقه پیش
// OR
$date = Jalalian::forge(&#039;now - 10 minutes&#039;)-&gt;ago() // 10 دقیقه پیشمنبع:https://github.com/morilog/jalaliازلینک بالا میتوانید توضیحات و مثالهای بیشتر از این پکیج فوق العاده رو پیدا کنید</description>
                <category>سیما</category>
                <author>سیما</author>
                <pubDate>Sun, 09 Aug 2020 13:00:01 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش مرتب سازی سریع</title>
                <link>https://virgool.io/@simanouri/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%B1%D8%AA%D8%A8-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%B3%D8%B1%DB%8C%D8%B9-fesotfidudzs</link>
                <description>فرض کنید به شما تعدادی از توپ های رنگی که در یک ردیف هر کدام در یک خانه جدا قرار گرفته اند داده اند و حال میگویند این توپ ها را به ترتیب رنگ های رنگین کمان مرتب کنید هر کسی به روشی این کار را انجام میدهد یکی تمام توپ ها را خالی میکند و به ترتیب از اول میچیند فرد دیگر توپ ها را نگاه کرده و جستجو میکند رنگ درخواستی را پیدا کرده و آن را با توپ خانه مورد نظر و ... جابه جا میکند در مرتب سازی آرایه ها هم روش های مختلفی وجود دارد عبارت اند از مرتب سازی انتخابی ، دودویی ، حبابی ، هرمی ، درجی و ...که روش مرتب سازی سریع هم یکی از آن هاست که در این مقاله آموزش آن میپردازیمروش مرتب‌سازی سریع (Quick Sort)یکی از الگوریتم‌های مشهور مرتب‌سازی داده‌ها است. این الگوریتم طی مراحل زیر که یک روش تقسیم و غلبه برای مرتب کردن داده‌ها ارائه می‌نماید:1- انتخاب عنصر محوری:یکی از عناصر آرایه به عنوان عنصر محوری (pivot) معمولا عنصر اول است را انتخاب می‌شود.2- تقسیم آرایه:چینش عناصر آرایه  به صورتی می‌شود که تمامی عناصر کوچکتر یا مساوی  عنصر محوری در سمت چپ آن و تمامی عناصر بزرگتردر سمت راست آن قرار بگیرند. این دو قسمت ،زیر آرایه‌های چپ و راست نامیده می‌شوند.3- مرتب‌سازی بازگشتی:زیرآرایه‌های چپ و راست به روش مرتب‌سازی سریع به ترتیب مرتب می‌شوند. که در زیر عکس به توضیح ان میپردازیم:مرتب سازی سریعحالا مرتب سازی به روش سریع رو به این ترتیب انجام میدهیم:این مرحله شامل تقسیم آرایه است ، یک عضو آرایه را انتخاب میکنیم و اسم آن را عنصر محوری (pivot point) میگزاریمو کلیه عناصری که از عنصر محوری کوچکتر هستند را سمت چپ عنصر محوری قرار میدهیمو عناصر بزرگتر از عنصر محوری را در سمت راست قرار میدهیم.اسم  این رویه  را partition میگذاریم که الگوریتم آن به زبان  phpبه شکل  زیر نوشته میشود:&lt;?php
$ pivot = $arr_beg;
$ higher = $arr_end;
while($pivot &lt; $higher ) {
if($ar[$pivot] &gt;$ ar[$pivot+1] ) {
$ temp=$ar[$pivot+1];
$ar[$pivot+1]=$ar[$pivot];
$ar[$pivot]=$temp;
$pivot++;
}
else {
$temp=$ar[$pivot+1];
$ar[$pivot+1]=$ar[$higher];
$ar[$higher]=$temp;
$higher--;
}
}
return $pivot;
}اولین عنصر ارایه را به عنوان عنصر محوری در نظر میگیریم و اخرین عنصر ارایه را به عنوان بزرگترین عنصر higherدر نظر میگیریم هر بار در حلقه while شرط این است که مقایسه کند تا ببیند higher از عنصر محوری بزرگتر باشد تا دستور حلقه اجرا شوددر هر بار اجرای حلقه while  عنصری از آرایه که در محل  pivot قرار دارد با عنصر بعدی یعنی عنصر (pivot+1)مقایسه میکند و اگر ازآن بزرگتر باشد با آن جابجا میشه(مسلماً وقتی که این اتفاق بیفتد باید خود متغیر pivot  هم که شماره عنصر محوری هست اصلاح بشود پس به اضافه یک میشود)و اگر بزرگتر نباشد با عنصر انتهای آرایه که با متغیر higher  مشخص شده بود جابجا میشود و برای اینکه دفعه بعد عنصرانتهای آرایه دوباره جابجا نشود متغیر higher  را یکی کم میکنیم.در نهایت شرط انتهای حلقه این است که متغیر های pivot  و  higher  با هم برابر شوند تا از حلقه خارج شود.در این حالت آرایه به دو بخش تقسیم شده کهیک بخش از ((*arr_beg  ((begin  شروع و تا عنصر قبل از pivot بخش دیگر از عنصر بعد از pivot  شروع میشه و تا arr_end ادامه داره.دوباره هر دو بخش به همین روش مرتب و جابه جا میشوند تا کل ارایه به شکل مرتب شده در آید&lt;?php
function quick_sort($my_array) {
$loe = $gt = array();
if(count($my_array) &lt; 2) {
return $my_array;
}
$pivot_key = key($my_array);
$pivot = array_shift($my_array);
foreach($my_array as $val) {
if($val &lt;= $pivot) { $loe[ ] = $val;
}
elseif
($val &gt; $pivot) { $gt[ ] = $val;
}
}
return array_merge(quick_sort($loe),array($pivot_key=&gt;$pivot),quick_sort($gt));

}
$my_array = array(3, 0, 2, 5, -1, 4, 1);
echo &#039;Original Array : &#039;.implode(&#039;,&#039;,$my_array).&#039;\n&#039;;
$my_array = quick_sort($my_array);
echo &#039;Sorted Array : &#039;.implode(&#039;,&#039;,$my_array);
?&gt;نکته ای که نباید فراموش کنید این است  که محل عنصر محوری بعد از مرحله بازگشتی تغییری نمیکند برای همین در تابع quick_sort  بعد از اینکه دو گروه کمتر از عنصر محوری و بیشتر از عنصر محوری، ساخته شدند، در بخشی که فراخوانی بازگشتی تابع quick_sort  انجام میشود عنصر محوری در هیچکدام از مرتب سازی های بخشهای جدید تشکیل شده  وجود ندارد.ویژگی‌های مرتب ‌سازی سریع1- این الگوریتم یک مرتب ‌سازی درجا است. یعنی میزان حافظه ای که الگوریتم مصرف میکند مستقل از طول آرایه است.2- زمانی که تعداد عناصر آرایه کم باشد، سرعت اجرای مرتب سازی درجی بهتر از مرتب‌سازی سریع است. به همین دلیل طی مراحل بازگشتی مرتب‌سازی سریع، اگر طول بازه عدد کوچکی باشد، معمولا بازه با مرتب‌سازی درجی مرتب می‌شود.3- انتخاب عنصر محوری بحث مفصلی تری دارد و همیشه عنصراول درنظر گرفته نمیشود اما در کل یک انتخاب آزاد است ومی‌توانید عنصر اول، عنصر آخر، یا هر عنصر دیگری را به عنوان عنصر محوری انتخاب کرد.حتی  یکی از روش‌های رایج، انتخاب یک عنصربه صورت تصادفی به عنوان عنصر محوری است.* اگرچه انتخاب عنصر محوری مناسب باعث بالا رفتن کارایی الگوریتم می‌شود، اما عموما هزینه‌ی لازم برای یافتن چنین محوری بالا بوده و مقرون به صرفه نیست.</description>
                <category>سیما</category>
                <author>سیما</author>
                <pubDate>Mon, 08 Jun 2020 13:33:41 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش مرتب سازی انتخابی</title>
                <link>https://virgool.io/coderlife/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%B1%D8%AA%D8%A8-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8%DB%8C-x2khotluvja1</link>
                <description>  فرض کنید که به شما آرایه ای بدهند و از شما بخواهند که بزرگترین عنصر این آرایه را در خروجی نمایش دهید.برای این کار برنامه ای خواهید نوشت که بزرگترین عنصر را به شما بدهد.* آرایه خانه هایی پشت سر هم از حافظه است که در آن متغییر ها را ذخیره میکنیم  حال فرض کنید که از شما بپرسند عنصر6  ام این آرایه به ترتیب بزرگ به کوچک چیست؟ آن وقت چکار خواهید کرد؟ برای حل این قبیل مسائل باید کل آرایه را مرتب کنیم!  ما روش های مختلفی برای مرتب سازی ها داریم که عبارت اند از مرتب سازی انتخابی ، دودویی ، حبابی ، سریع ، هرمی ، درجی و ...مرتب سازی انتخابی یا Selection sort  در مرتب سازی انتخابی  از اولین خانه آرایه شروع می کنیم و این خانه را با خانه های بعد از خودش تا آخرین خانه ی آرایه، یکی یکی مقایسه می کنیم  هر جا که مقدار متغییر خانه ای از خانه ی اولی کمتر بود نگه میدارد و مقایسه را تا اخرین خانه ارایه ادامه میدهد و کوچکترین مقدار ارایه را یافته و مقدار آن را با خانه اول جابجا میکند اگر مقدار کوچکی نبود کاری نکرده و به سراغ خانه بعدی میرود یعنی خانه دوم .  مقدار خانه دوم را با خانه های بعدی ارایه مقایسه میکند و کوچکترین مقدار  دوباره جستجو کرده  یافته و با خانه دوم جابجا میکند اگر هیچکدام از مقدار خانه دوم کوچکر نبود کاری انجام نمیدهد و سراغ خانه بعدی میرود و این کار را برای تمام خانه های آرایه ( غیر از آخرین خانه که به مقایسه ای احتیاج ندارد) انجام می دهیم.در شکل رو به رو مراحل این کار بخوبی نشان داده شده است:مرتب سازی انتخابیحالا به سراغ کد نویسی مرتب سازی ارایه میرویمدر این قسمت کد های مرتب سازی ارایه را با زبان php  نوشته ایم:&lt;?php
function change_place(&amp;$x, &amp;$y){
$temp = $x;
$x = $y;
$y = $temp;
}
function selection_Sort(&amp;$arr, $n)
{
  for ($i = 0; $i &lt; $n - 1; $i++) {
  $min = $i;
  for ($j = $i + 1; $j &lt; $n; $j++)
  if ($arr[$j] &lt; $arr[$min])
  $min = $j;
change_place ($arr[$min], $arr[$i]);
  }
}
 
function printArray(&amp;$arr,$size)
{
for ($i=0; $i &lt; $size; $i++) {
  echo $arr[$i] . &amp;quot&lt;br&gt;&amp;quot
}
}
 
$arrayeh = array(12, 14, 13, 5, 6,10,4,1,2);
$m = sizeof($arrayeh);
selection_Sort($arrayeh, $m);
printArray($arrayeh, $m);
 ?&gt;توضیح کد های بالا:در تابع با نام change_place  ما یک متغییر خالی در نظر میگیریم به نام tempبرای تعویض جای دو خانه متغییر یکی از خانه ها (خانه اول)را در متغییر خالی همان temp  میریزیمسپس داده های خانه دوم را در داخل خانه اول که حال خالیست میریزیمبعد از ان داده های خانه اول را که در  temp  ریخته بودیم را در خانه دوم میریزیمحالا داده های دو خانه با هم تعویض شدنددر فانکشن بعدی دو ورودی میخواهد از ما که یکی طول ارایه است دومی اندازه ارایه یعنی همان تعداد خانه های ارایه هر بار یکی یکی خانه های ارایه را میخواند و اگر کوچکتر از داخل متغیرmin شماره خانه ها نگه میدارد سپس با حلقه بعدی خانه بعد از خانه i  را میگیرد و مقایسه میکند کوچکترین داده را پیدا میکند وشماره ان را در  min  ذخیره میکند یعنی متغیر داخل j  کوچکترین است و سپس فانکشن تعویض جا را صدا میزند که متغییر های داخل دو خانه را با هم جا به جا کند این عمل تا زمانی که i  مساوی با طول ارایه شد ادامه پیدا میکند فانکشن بعدی پس از اتمام مرتب سازی خانه های ارایه را خوانده و چاپ میکند.حالت عادیمرحله1مرحله2مرحله 3</description>
                <category>سیما</category>
                <author>سیما</author>
                <pubDate>Mon, 08 Jun 2020 12:47:08 +0430</pubDate>
            </item>
            </channel>
</rss>