دسته: MySQL

  • دوره‌ی آموزش سریع لاراول

    دوره‌ی آموزش سریع لاراول

    بعد از حدود ۱۰ سال کار با لاراول، الان حس میکنم زمان خوبیه که یکم در موردش حرف بزنم و اول آموزشش بدم و بعد اگه شد بیشتر در مورد نحوه‌ی استقرار پروژه و کلی چیزای دیگه حرف میزنم. ویدیو ها بصورت رایگان توی این کانال یوتوب منتشر میشه و کد پروژه ای که کار میکنیم هم توی این ریپازیتوری میتونید ببینید. این داکیومنت تا خیلی مدت دیگه بروز میشه و فعلا در حد یه پیش نویس هست که قسمت های مختلف آموزش رو روی این پست آپدیت میکنم. سورس کد قسمت های مختلف این دوره رو میتونید با تگهایی که توی این ریپازیتوری هست ببینید.

    نصب لاراول با داکر روی مک

    توی ویدئوی اول در مورد نصب و شروع کار حرف زدم. تک تک سیستم عامل ها رو نمیتونستم برو و بگم ولی میتونید با داکر پروژه رو خیلی سریع بالا بیارید. هدف از این دوره اینه که خیلی سریع بدون اینکه ویدیو رو بزنید جلو کار رو یاد بگیرید. من برای نصب لاراول روی مک از این کامند استفاده کردم:

    curl -s "https://laravel.build/laravel-mentor" | bash

    ولی شما میتونید از ابزارهای دیگه ای که موجود هست مثل این ابزارها هم استفاده کنید. ابزارهای موجود روی ویندوز:

    برای مک هم جدا از داکر میتونید از لاراول هرد استفاده کنید که توسط کامینیوتی خود لاراول توسعه داده میشه. کاربرهای لینوکس هم که خودشون بلدن چیکار کنن و معمولا همون داکر بهترین گزینه هست واسشون. اینجا میتونید بصورت ویدیویی توضیحاتم رو ببینید:

    نصب لاراول روی مک و سایر سیستم عامل ها

    تعریف مسیرها در لاراول

    در بخش دوم در مورد مسیر ها حرف زدم و اینکه چطور میشه مسیرهای به سبک مدرن تعریف کرد. این روزا دیگه خبری از مسیرهای شلوغ و طولانی نیست و توسعه دهنده ها سعی میکنن مسیرها با معنی و تمیز باشن. حتی طراح های محصول روی هم روی این قضیه حساس تر شدن و واسشون مهمه که آدرسی که فردا برای مارکتینگ میخوان بفرستن تمیز و معرف محتوای صفحه باشه. مثلا ما وقتی این آدرس رو میبینیم به راحتی میتونیم حدس بزنیم اون تو چه خبر میتونه باشه.

    https://github.com/pricing

    توی ویدیو میتونید نحوه ی تعریف مسیرهای ساده در لاراول رو ببینید:

    نحوه ی تعریف مسیر ها در لاراول

    دستوران خط فرمان (CLI tools) در لاراول

    توی لاراول یه فایل داریم به اسم artisan که باهاش میشه دستورات کامند لاینی اجرا کرد. در واقع یه ابزار خط فرمانی هست که میشه فیچر های مختلف لاراول رو باهاش تولید کرد یا یسری چیزها رو دید. مثلا دستور زیر به ما لیست مسیر های توی پروژمون رو میده:

    sail artisan route:list

    آرتیزان کلی بهتون امکانات میده که باهاشون میتونید کارای مختلف بکنید ولی بازم ممکنه یه کامندی نیاز داشته باشید که توی لاراول وجود نداره. اون موقع خودتون میتونید دست به کار بشید و کامند خودتون رو بسازید. توی این ویدیو این اینترفیس رو معرفی کردم و در موردش بیشتر توضیح دادم.

    کار با دستور artisan در لاراول

    سورس رو روی گیتهاب ببینید

    داشتم به این فکر میکردم که یه روشی داشته باشیم که من کدهای هر جلسه رو چطوری بهتون بدم؟ گیت و گیتهاب گزینه ی خوبیه ولی مشکل این بود که اگه هر روز کد رو آپدیت میکردم شما دقیقا کد مریوط به جلسه ی خاص رو نداشتید. از طرف دیگه توی این روزا کسی حوصله ی دانلود و اکسترکت کردن فایل zip رو نداره. بخاطر همین شاید بهترین کار اینه که کد مربوط به هر جلسه رو با یه تگ مشخص روی گیت بذاریم. اینجوری میتونید همون بالا کد رو چک کنید با کامندی که میخواید دانلود کنید. توی این جلسه در مورد این حرف زدم.

    چطور در لاراول ویو تعریف کنیم؟

    سوالی هست که توی ویدیوی بعدی در موردش حرف زدم. ویوها یکی از بخش ها مهم فریمورک لاراول هستن که یه فریمورک MVC هست. یه چیزی مثل وردپرس رو اگه باهاش کار کرده باشید، تمی که روش نصب میکنید یجورایی توی لاراول بهش میگن ویو. در واقع توی ویوها خروجی های html رو رندر میکنیم.

    تعریف ویو در لاراول

    جلوگیری از تکرار در blade و با لاراول

    فرض کنید که میخواید کلی صفحه ی blade داشته باشید که هر کدوم کلی چیز میز تکراری دارن. توی دنیای پی اچ پی پیور مخصوصا اگه تازه کار هستید خیلی چالش دارید که بخش های تکراری رو حذف کنید و فقط یجا داشته باشید. لاراول با فیچرهایی مثل yield و extends این مدل مشکلات رو خیلی شیک و تر و تمیز حل کرده. توی این ویدیو در مورد این داستانا حرف زدم

  • برنامه نویس ربات تریدر ارزهای دیجیتال و فارکس

    برنامه نویس ربات تریدر ارزهای دیجیتال و فارکس

    این روزا ارزهای دیجیتال خودتون میدونید دیگه 🙂 یسری ها هستن که دارن توی زمینه ی ارزهای دیجیتال کار میکنن و روز و شب پای سیستم هستن که یه نونی بیارن سر سفره. منتها این کارم سختی های خودشو داره. یکی از سختی هایی که داره اینه که این بنده خدا ها صب تا شب باید توی نمودار بالا پایین بشن که ببینن آیا نمودار قط کرد یا نکرد! مورد بعدی ای که هست اینه که باشه اصلا صب تا شبم طرف بشینه پای سیستم باز میرسه به یجایی که قط میکنه ولی دلش نمیاد بفروشه تا اصطلاحا تخم نمیکنه بخره! بعدن میبینه که ضرل کرده و دیگه اون موقع دیره. این دوستان میگن اگه بشه ۱. صب تا شب پای سیستم باشیم و ۲.استراتژی خوبی بچینیم و نهایتا ۳.احساسی عمل نکنیم اونوقت احتمالا میشه سود کرد توی این بازار.

    ربات خرید و فروش چه کمکی میتونه بکنه؟

    این تیتر رو بیشتر برای سئو زدم و اصلا مهم نیس و قطعا شما دیگه میدونید که ربات میتونه همه ی اون مشکلاتی که گفتم رو حل کنه. ینی هم ۷ روز هفته و ۲۴ ساعت شبانه روز پای سیستمه اگه سرور ۹۹.۹۹٪ آپتایم داشته باشه. از اونور استراتژی های مختلف هم اگه توی ربات تعریف بشه باز این مشکل هم به مرور زمان حل میشه و شما راه رو پیدا میکنید. نهایتا ربات که با صفر و یک کار میکنه احساسات نداره خداروشکر. لذا این روزا این آدما نیاز شدیدی دارن که یه ربات داشته باشن. در ادامه میخوام در مورد اینکه برای نوشتن ربات چیا باید بلد باشیم هم صحبت میکنم.

    ابزارها و زبان های لازم برای نوشتن ربات تریدر

    برای نوشتن ربات باید اطلاعات خوبی در زمینه ی برنامه نویسی بکند داشته باشید. در واقع شما باید بتونید از API صرافی های مختلف سر در بیارید و بعد ازشون دیتا بگیرید و نهایتا بتونید درخواست سفارش های خودتون رو روی صرافی های مختلف ثبت کنید. بعنوان نمونه میتونید صرافی های زیر رو چک کنید.

    بایننس بزرگترین صرافی ارز دیجیتال در دنیا

    برای ارسال درخواست به این API ها میتونید از یک زبان برنامه نویسی مثل PHP یا پایتون استفاده کنید یا حتی میتونید برای شروع از ابزارهایی مثل Postman استفاده کنید. اگر با یک زبان برنامه نویسی کار میکنید برای اینکه کد شما همیشه بالا باشه باید یه سرور داشته باشید و برای اینکه داده ی خودتون رو روی سرور ذخیره کنید باید یک نرم افزار مدیریت دیتابیس مثل MySQL داشته باشید.

    استفاده از Trading View برای نوشتن ربات

    تریدینگ ویو یه سایته که یکی از کاراش اینه که به شما چارت میده که میتونید با اون چارت ها استرتژی های خودتون رو مدل کنید. تریدینگ ویو یه چیزی داره به اسم alert که شما میتونید روی نمودار ها اعلان ست کنید که وقتی شرایطی که مد نظر شماست اتفاق افتاد برای شما اعلان ارسال بشه. این اعلان ها میتونن بصورت web hook باشن. ینی به سرور شما درخواستی ارسال کنن. نهایتا حتی شما میتونید استرتژی ها رو با زبان Pine که یه زبان برنامه نویسی مخصوص خود تریدینگ ویو هست بنویسید و اعلان ها واستون ارسال بشن. ینی لازم نیست شما داده رو بگیرید و پردازش کنید. استراتژی رو بصورت ویژوال میچینید و خرید و فروش اتوماتیک روی صرافی مد نظرتون انجام میشه.

    جمع بندی

    بصورت خلاصه این یک مطلب کلی در مورد مسیر بود. شما میتونید در مورد تک تک این موضوعات سرچ کنید و ربات خودتون رو بنویسید. البته مد نظر داشته باشید که بجز دانش برنامه نویسی باید بتونید استراتژی خوب بچینید که منجر به چیزای خوب بشه. و نکته ی دیگه ای که بازم مهمه داشتن سرمایه هست دیگه. شما بهترین استرتژی رو هم داشته باشی بدون سرمایه خطریه 🙂

    اگه نیاز به برنامه نویسی دارید که همه ی اینارو داره (بجز سرمایه) با ما تماس بگیرید.

  • اصلاح جدول‌های لاراول بعد از migrate کردن

    اصلاح جدول‌های لاراول بعد از migrate کردن

    حتما اگه مدتی با لاراول کار کرده باشید میدونید که مایگریشن های لاراول چیزای خطرناکی ان 🙂 از این جهت که ممکنه یه چیزی رو مایگریت رول بک کنید و داده ای که دارید رو از دست بدید. خب سوالی که پیش میاد اینه که پس چجوری فیلد ها رو ادیت کنیم؟ داکیومنت مایگریشن خود لاراول پکیج doctrine/dbal رو پیشنهاد میکنه برای اینکه تغییرات رو روی جدول ها انجام بدیم.

    فرض کنید اول کار من یه فیلد از مایگریشن ام رو اینجوری درست کردم:

    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title', 500);
        $table->text('body')->nullable();
        $table->timestamps();
    });

    حالا میخوام به جدول یه فیلد دیگه اضافه کنم به اسم published. برای این کار به صورت زیر عمل میکنم که اول یه مایگریشن درست میکنم:

    php artisan make:migration alter_posts_add_published_field

    و بعد توی متد up کاری که میخوام رو انجام میدم:

    Schema::table('posts', function (Blueprint $table) {
        $table->boolean('published')->nullable();
    });

    با مایگریت کردن مجدد تغییراتی که دادید اعمال میشه. حالا فرض کنید همین فیلد آخری رو میخواید مقدار default واسش بذارید. برای تغییر در فیلدهای موجود پکیج زیر رو نصب کنید:

    composer require doctrine/dbal

    یه مایگریشن جدید درست میکنید:

    php artisan make:migration alter_posts_add_default_value_to_published_field

    و از فانکشن change برای اعمال تغییرات استفاده کنید:

    Schema::table('posts', function (Blueprint $table) {
        $table->boolean('published')->default(0)->change();
    });

    اگه تابع change رو نذارید خطای زیر رو میگیرید چون فکر میکنه که دارید فیلد رو اضافه میکنید:

    SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'published' (SQL: alter table `posts` add `published` tinyint(1) not null default '0')

    اگه تابع change رو بذارید آخر مایگریشن ولی dbal نصب نباشه این خطا رو میگیرید که اینم مشخصه چی میگه:

    Changing columns for table "posts" requires Doctrine DBAL. Please install the doctrine/dbal package.

    نکته ی دیگه ای که باید مد نظر داشته باشیم اینه که اگر مثلا یه کلید خارجی دارید اضافه میکنید باید حواسمون باشه که کلید خارجی و لوکال با هم compatible باشن که البته این نکته توی ساخت همون مایگریشن ها هم مهمه دیگه.

    اگه دیدید خیلی مایگریشن هاتون زیاد شدن میتونید با این فیچر از شرشون خلاص بشید.

    موفق باشید 🙂

  • لیست دیتابیس های نمونه برای تمرین با MySQL

    لیست دیتابیس های نمونه برای تمرین با MySQL

    اگه دنبال دیتابیس های نمونه برای کار با دیتابیس و تمرین و یادگیری SQL و مشخصا MySQL هستید من در زیر لیست یسری دیتابیس رو براتون میارم و لینک دانلودشون رو میذارم که بتونید تمرین کنید.

    دیتابیس نمونه فروشگاه اینترنتی

    در این دیتابیس که دیاگرام ER اون در زیر اومده جدول های متنوعی برای کار با یک فروشگاه اینترنتی نمونه اومده که شما میتونید هم ازش الگو بگیرید و هم کوئری های مختلف رو روش تست کنید.

    لیست جدول های این فروشگاه:

    • Customers: که داده مشتری ها داخلش ذخیره شده.
    • Products: محصولات فروشگاه رو توی خودش داره.
    • ProductLines: دسته بندی های محصولات هست.
    • Orders: سفارش های مشتری ها رو تو خودش داره.
    • OrderDetails: که آیتم های هر سفارش رو شامل میشه.
    • Payments: پرداخت های مشتری.
    • Employees: لیست کارمندهای فروشگاه و عناوین شغلی.
    • Offices: اطلاعات مراکز اداره ی فروش.
    فایل دانلود دیتای بالا رو میتونید در زیر دانلود کنید و توی دیتابیس خودتون ایمپورت کنید:

    استفاده از سایت فیل دی بی

    بعضی موقع ها ما دوست داریم دیتابیس ای که داریم با داده ی فیک پر بشه. توی لاراول یه چیزی داریم به اسم فکتوری ها که این کار رو با faker واسمون انجام میدن ولی در حالت کلی یک وبسایت هست به اسم فیل دی بی که میتونه اسکیمای جدول ها رو از شما بگیره و دیتای پر بهتون برگردونه. پس خیلی راحت از دیتابس خالی یه اکسپورت بگیرید بهش بدید و…

  • تدریس خصوصی PHP

    اگر قصد دارید برنامه نویسی بکند رو یاد بگیرید شاید این روزا بهترین گزینه PHP و فریمورک لاراول باشه. پی اچ پی یک زبان برنامه نویسی بکند هست که بخش زیادی از بازار توسعه وب دنیا رو در اختیار داره و حتی سی ام اس های معروفی مثل وردپرس هم با این زبان نوشته شدن و شما برای توسعه پلاگین برای وردپرس هم میتونید این زبان رو یاد بگیرید. همچنین فریمورک های معروفی مثل لاراول هم با زبان PHP نوشته شدن. ما در یک دوره ی کوتاه ولی منظم به شما مبانی کار با PHP رو به نحوی یاد میدیم که اولین پروژه ی خودتون رو که کاملا کاربردی باشه رو با PHP بزنید

    سرفصل های دوره ی PHP

    بصورت کلی سرفصل های زیر را در این دوره یاد خواهید گرفت.

    • مقدماتی در مورد برنامه نویسی وب
      • HTTP
      • مرورگر
      • مرور فرانت
        • HTML
        • CSS
        • JavaScript
    • مقدمات کار با سیستم عامل
      • کار با ترمینال
      • دستورات پایه
      • مدیریت حافظه
    • کار با انواع داده
    • ساختار های کنترلی
    • توابع
    • کلاس ها و اینترفیس ها
    • فضای نام در PHP
    • کار با composer
    • مفاهیم کامپوزر مثل autoloading
    • کار با دیتابیس MySQL
    • مفاهیم api نویسی و json
    • کار با postman
    • احراز هویت در PHP
      • ثبت نام
      • ورود به سیستم
      • فراموشی رمز عبور
    • ارسال ایمیل
    • ارسال پیامک
    • کار با فایل ها و آپلود فایل
    • سشن ها و کوکی ها

    بعد از اتمام این دوره شما قادر خواهید بود که در دوره ی برنامه نویسی شی گرا در پی اچ پی شرکت کنید که توسط ما آموزش داده میشود. برای کسب اطلاعات بیشتر به صفحه ی تدریس خصوصی برنامه نویسی شی گرا در پی اچ پی مراجعه کنید.

    اگر نیاز به مشاوره ی رایگان در مورد کلاس ها و نحوه آموزش دارید با من در واتساپ تماس بگیرید.

  • تدریس خصوصی MySQL برای PHP

    تدریس خصوصی MySQL برای PHP

    با اینکه این روزها سیستم های مدیریت پایگاه داده noSQL خیلی ترند تر هست ولی همچنان خیلی جاها نیاز هست که ما با سیستم های قدیمی و البته محبوب مثل MySQL کار کنیم. قدرت پایگاه داده های رابطه ای زمانی مشخص میشه که شما بخواید با داده های شدیدا رابطه ای کار کنید. مای اس کیو ال یه سیستم مدیریت پایگاه داده رابطه ای هست. اگر نیاز به یادگیری بصورت آموزش خصوصی MySQL دارید میتونید با من با شماره ۰۹۱۹۹۶۵۶۶۹۳ تماس بگیرید تا یادگیری کار با پایگاه داده با MySQL رو بهتون آموزش بدم.

    در این دوره چیا یاد میگیریم؟

    مای اس کیو ال از زبان SQL یا Structured Query Language استفاده میکنه که پرسش هایی که داره رو از دیتابیس انجام بده. در این دوره ما قصد داریم با استفاده از زبان برنامه نویسی PHP به شما یاد بدیم که چطور به دیتابیس وصل بشید و کارهایی مثل ذخیره و بازیابی داده و کارهای پیچیده تر مثل join ها و… رو انجام بدید. این دوره پیش نیاز دوره ی کار با datatables هست و با یادگیری اون قطعا راه برای ایجاد اپلیکیشن های پیچیده که دارای استوریج داده هستند باز میشه واستون.

    بعد از این دوره شما قادر خواهید بود که نیازهای خودتون رو بعنوان یک برنامه نویس متوسط رفع کنید و با کسب تجربه در آینده نزدیک کارهای خفن تری که تو ذهنتون هست رو انجام بدید.

    در این دوره با مباحث زیر بصورت عملی کار خواهید کرد:

    • دیتابیس چیه و چرا بوجود اومد؟
    • نصب MySQL
    • نصب GUI های معروف مثل PHPMyAdmin یا Table Plus
    • آشنایی با مفاهیم اولیه مثل جدول، سطر، ستون، پرسش و…
    • کامنت گذاری در MySQL
    • دستورات ساخت دیتابیس و جدول
      • ساخت و حذف دیتابیس
      • ساخت و حذف و اصلاح جدول
      • آشنایی با انواع داده در MYSQL
      • آشنایی با داده های مختلف برای تاریخ و زمان
      • انواع محدودیت یا constraint ها
      • فهرست گذاری یا INDEX
      • کلید های اولیه یا PRIMARY KEY
      • کلید های خارجی یا FOREIGN KEY
      • محدودیت CHECK در MySQL
    • واکشی داده با دستور SELECT
    • محدود کردن داده ی انتخاب شده با دستور WHERE
      • کار با دستور HAVING
      • کار با دستور EXISTS
      • کار با دستورات ANY و ALL
    • ترکیب چند عبارت با دستور های AND، OR و NOT
    • مرتب کردن داده با دستور ORDER BY
    • چک کردن مقادیر NULL
    • وار کردن داده ی جدید به دیتابیس با دستور INSERT
    • وارد کردن به جدول با انتخاب از جدول دیگه با دستور INSERT INTO SELECT
    • بروزرسانی داده ی قدیمی با دستور UPDATE
    • حذف ریکورد ها از دیتابیس با دستور DELETE
    • واکشی تعداد محدودی داده با دستور LIMIT
    • پیدا کردن حداقل و حداکثر روی یه ستون با دستورهای MIN و MAX
    • گرفتن تعداد سطر ها، جمع و میانگین با دستورهای AVG، COUNT و SUM
    • جستجو در فیلدها با دستور LIKE و Wildcard ها
    • استفاده از دستور IN برای جستجوی چند مقدار مختلف در یک ستون
    • کار با دستور BETWEEN برای جستجو در بازه روی یک فیلد از دیتابیس
    • مفهوم Alias ها و کار با اونها
    • ترکیب جدول ها با هم با استفاده از JOIN و آموزش انواع جوین ها:
      • INNER JOIN
      • LEFT JOIN
      • RIGHT JOIN
      • CROSS JOIN
      • جوین به جدول فعلی یا همون self join
      • UNION ها که البته جوین حساب نمیشن!
    • کار با دستور مهم GROUP BY برای گروه زدن بر اساس فیلدها
    • کار با دستور CASE
    • کار با عملگر ها
    • کار با VIEW ها در MySQL
    • کار با توابع یا Functions
    • آموزش کار با Stored Procedure ها
    • آموزش کار با Stored Function ها
    • آموزش کار با Trigger ها در SQL
    • آشنایی با ORM ها

    آیتم های فوق رو برای اینکه صفر تا ۱۰۰ از مای اس کیو ال رو یاد بگیرید نوشتم. ولی اگر شما نیاز به آموزش مقدماتی دارید میشه بخشی از مفاهیم بالا رو میشه ازشون رد شد. برای مشاوره و اطلاعات بیشتر در مورد دوره ها با من تماس بگیرید.

  • ریست کردن پسورد MySQL در لینوکس

    با سلام – اگه یادتون رفته که رمز یوزر rootتون چی بود، خیلی راحت میتونید رمز رو با سوپر ادمین ریست کنید و رمز جدید رو ست کنید.

    دستور زیر رو بزنید که یه سوپر ادمین بدون سوال و جواب توی سیستم بشید:

    sudo -i

    رمز لینوکس رو وارد میکنید و حالا شروع میکنیم به کار، در مرحله بعد دستور زیر رو بزنید که بدون وارد کردن رمز بتونید وارد محیط خط فرمان مای اس کیو ال بشید:

    mysql

    توجه داشته باشید که خط بالا رو اول باید بزنید که سوپر ادمین بشید و بعد بتونید وارد شید. حالا که همه چی اوکیه با دستور زیر جدول mysql رو انتخاب کنید:

    use mysql;

    بعد از اون دستور زیر رو وارد کنید و جای my_password رمز دلخواه خودتون رو وارد کنید:

    update user set authentication_string=PASSWORD("my_password") where User='root';

    کارایی که کردیم رو با دستور زیر ذخیره کنید:

    flush privileges;
    exit;

    و نهایتا سرویس MySQL رو ریستارت کنید با دستور های زیر:

    sudo /etc/init.d/mysql stop
    sudo /etc/init.d/mysql start

    حالا exit کنید و با دستور زیر وارد محیط تحت کامند مای اس کیو ال بشید:

    sudo mysql -u root -p

    و لذت ببرید 🙂