
با توجه به جدول فوق میتوان تکه کد class مربوط به هر سایز را کنترل کرد
با توجه به جدول فوق میتوان تکه کد class مربوط به هر سایز را کنترل کرد
سلام گاهی اوقات لازم است که query sql مشابه زیر داشته باشیم
select * from (select * from `shop_stores` where `shop_stores`.`deleted_at` is null) as `shop_stores` where `shop_stores`.`deleted_at` is null;
برای این منظور میتوانیم از متد subFrom در query builder لاراول استفاده کنیم.
$firstQuery = stores::query();
$secondQuery = stores::query();
$secondQuery->fromSub($firstQuery,'shop_stores',function ($join){
$join->on('shop_stores.id','=','latest_posts.id');
});
$secondQuery->dd();
با عرض سلام خدمت شما برنامه نویس گرامی
استفاده از سرویس های کنترل نسخه خارجی دارای مشکلاتی در موضوع تحریم است که با چالش هایی که در ایران هم وجود دارد لازم است که از سرویس جایگزین استفاده شود با توجه به تجربه ای که در استفاده و نصب gitlab داشته باید بگویم که به نسبت سنگینی که دارد خیلی به صرفه نیست معادل بهینه و کارامدتر Gitea است که من میخوام در این آموزش به شما تاکید کنم حتما از نسخه نصب Docker استفاده کنید و روش دستی را تا جایی که مقدور است استفاده نکند .
ابتدا از یکی از شرکتهای معتبر ایرانی یک VPS با سیستم عامل ubuntu 20 با ۲ هسته CPU و ۱ گیگ رم ترجیا ۲ گیگ خریداری کنید .
سپس لازم است که از سرویس شکن استفاده کنید ، باید ns های سرور را به ns های شکن تغییر دهید که بتوانید از docker استفاده کنید و بعد طبق آموزشی که خودم استفاده کرده ام پیش برید.
https://www.digitalocean.com/community/tutorials/how-to-install-gitea-on-ubuntu-using-docker
یکی از بهترین ابزارها https://github.com/wg/wrk است که با دستور هایی میتواند به صورت همزمان میزان پاسخگویی به کاربران همزمان اپلکیشن شما را انجام دهد
لازم است که حتما در local این تست را بر اساس سخت افزاری که دارید انجام دهید
sudo apt-get install build-essential libssl-dev git -y git clone --depth 1 https://github.com/wg/wrk.git wrk cd wrk sudo make # move the executable to somewhere in your PATH, ex: sudo cp wrk /usr/local/bin
به طور مثال ۳۰ ثانیه در ۱۲ نخ و ۴۰۰ اتصال همزان با دستور زیر از ادرس زیر به اینصورت است
wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
در واقع در تست زیر هرچه میزان درخواست بر ثانیه بیشتر باشد بهتر است
ابتدا در سایت npmjs.com عضو شوید
سپس در سیستم خود پروژه را که ایجاد کرده اید را روی صفحه github خود ارسال کنید
بعد با دستور npm init –scope=@vahidalvandi اسکوپ را تعریف کنید
بعد جهت ارسال به npm دستور npm publish –access public را ارسال کنید
در صورتی که در نصب پکیج محلی خطای in the lock file but not in remote repositories, make sure you avoid updating this package to keep the one from the lock file را داشتید به دلیل عدم وجود فایل composer.json در root هر پکیج است مثلا باید در پروژه پکیچ های محلی در مسیر زیر باشد
packages/namevednor/base
درون base حتما باید composer.json باشد
همچنین دقت کنید که در composer.json اصلی که در root قرار دارد باید مسیر دهی به شکل زیر باشد
repositories": { "namevednor/base": { "type": "path", "url": "packages/namevednor/base" } } require": { "namevednor/site": "dev-master" }
جهت اجرای بهینه سازی vendor در لاراول لازم است که دستوراتی را اجرا کنید که تنها وابستگی های که در فایل composer s با اجرای دستور زیر تنها پکیج های الزامی نصب میشوند و پکیج هایی که در بخش توسعه لازم بود حذف میگردند با این روش میتوانید حجم پوشه vendor را تا ۵۰ درصد کاهش دهید
composer update --no-interaction --prefer-dist --optimize-autoloader --no-dev
لاراول به صورت پیش فرض یک طراحی پیش فرض دارد مانند تصویر زیر و شامل 404 و 401 و 500
با اجرای دستور php artisan vendor:publish –tag=laravel-errors فایل ها و طراحی ها در پوشه resources/views/errors اضافه میشوند و با تغییر minimal.blade.php میتوان گرافیک مورد نظر هر پروژه را اجرا کنید
هنگامی که دو جدول دارید و میخواهید بعد از ایجاد join میان آن دو از جدول اول یک مقدار را sum کنید می بینید که عدد اشتباه است این مشکل زمانی دیده میشود که جدول دوم دارای بیش از یک رکورد معادل رکورد در جدول اول باشد . برای حل این مشکل با تکه کد زیر میتوان دو جدول را جمع زد
SELECT COUNT(DISTINCT invo.id), SUM(invo.am) FROM invo JOIN (SELECT invo_id FROM invo_tm GROUP BY invo_id) AS xx ON (xx.invo_id = invo.id);
نرم افزار crm vtiger یک نرم افزار متن باز است که قابلیت های زیادی دارد از جمله امکان ایجاد انواع فیلدهای سفارشی مانند text box یا option select نکته ای که وجود دارد این است که شما میتوانید روی همه فیلدهای هر بخش مثل فرصت ها یا سرنخ ها گردش کار ایجاد کنید مثلا اگر شما یک سرویس میزبانی وب می فروشید لازم است که بعد از یکسال یک وظیفه خودکار ایجاد کند . شاید شرطی را روی گردش کار crm قرار دهید که اگر روی محصول هاست بود این اتفاق رخ دهد و محصول هاست هم یک فیلد سفارش است . توجه کنید که اگر شما محصول هاست را به هاست لینوکس تغییر نام دهید گردش کار اجرا نمیشود و لازم است که مجدد گردش کار را با نام جدید محصول اصلاح کنید .
رای ورود اطلاعات به mysql میتوان با روش csv اقدام کرد برای این کار فایل اکسل خود را در google sheet باز کنید و بعد اتمام کار از ان خروحی csv comma seperated بگیرد سپس با ورود به جدول مورد نظر در mysql روی دکمه import کلیک کنید و در پایین
در بخش Column names اگر طبق فایل csv ترتیب همه ستون ها برابر نبود میتوان مطابق ترتیبی که در فایل csv است اینجا وارد کنید و حتما با comma آن را جدا کنید . توجه کنید که در فایل csv نباید ردیف اول شامل تیتر ستون باشد و باید اولین رکورد دیتا قرار بگیرد.
بسیاری از دوستان و شرکت هایی که قبلا با وردپرس میانه خوبی نداشتند اما آن را حداقل به عنوان روش دوم در پیاده سازی انواع سایت ها استفاده میکنند این موضوع برای خود من هیچ وقت اینطور نبود من از ابتدای فعالیتم که در سالهای 84 شروع شد با وردپرس شروع کردم و وردپرس را با علاقه دنبال کردم چند چیز برای من جالب بود ابدا سادگی و دومی به روزرسانی خودکار و ساده ای که داشت و من مطمن بودم که همین دو امکان می تواند برای من کافی باشد که همیشه امن باشد و بتوانم مشتری هایی که دارم با آن راضی نگه دارم . خوشبختانه از آن روزها تا الان بیش از 15 سال گذشته است و همچنان وردپرس برای من و بسیاری از منکران آن جذاب شده .
وردپرس به دلیل جامعه بزرگی که دارد نگرانی های نگهداری و پیشرفت آن را توسط یک شرکت یا شخص خاصی را ندارد و میتوان وب سایت هایی متفاوتی را با آن ساخت همانطور که گفتم سادگی و به روزرسانی خودکار کار را برای مشتری هم ساده میکند و این باعث بقای وردپرس شده است .