اجرای دستور sum روی ۱۰۰ رکورد اول در SQL

احتمالا اگر بخواهید از یک روش ساده برای دریافت ۱۰۰ رکورد اول استفاده کنید دستور زیر را وارد میکنید

select sum(amount) from orders limit 100

اما متاسفانه این دستور به درستی عمل نمیکند و ستون amount را در کل رکورد ها جمع میزند . راه حل این است که از sub query استفاده شود. به طور مثال

select sum(tmp.amount) from (
select * from orders limit 100
) as tmp

انواع روش های نامگذاری در کدنویسی

یکی از اصولی که باید در کدنویسی رعایت کرد نحوه تعریف متغییرها و کلاس ها و … است. با رعایت این اصول کدنویسی از یک شکل مشخصی تبعیت میکند به این صورت که اگر قرار است یک کلاس برای مدیریت کتاب داشت به چند شکل میتوان آن را تعریف کرد BookManager یا book-manager یا bookManager و چندین حالت دیگر به طور کلی هفت روش نامگذاری به صورت استاندارد تعریف شده که به شرح ذیل است.

پرکاربرد ترین آنها SNAKE و PASCAL و CAMEL می باشد.

TransformerEffect
SNAKEgo_sdk
KEBABgo-sdk
CAMELgoSdk
PASCALGoSdk
LOWERgo-sdk
UPPERGO-SDK
TITLEGo-Sdk

بدون یادگیری داکر پروژه های خود را داکرایز کنید

اگر شما توسعه دهنده یکی از پلتفرم های Laravel, Symfony, Next, Nuxt, WordPress باشید برای مرحله Devops نیاز به یادگیری خیلی چیزها دارید که چطور بتونید پروژه خود را با کمک Docker راه اندازی کنید معمولا شاید در گوگل سرچ میزنید و یک نمونه آماده را پیدا میکنید و با کمی تغییر آن را اجرا میکنید و ممکن است انواع مشکلات امنیتی و خطاهای سطح دسترسی را هم داشته باشید و از طرفی هم گوشه ای از ذهنتان درگیر نگهداری آن باشد.

اما امروز من با یک ابزار جدید آشنا شدم که خیلی کار شما را در بخش داکر راحت میکند این ابزار میتواند برای شما در حالت های توسعه یا حالت عملیاتی به شکل کاملا بهینه و اصولی اجرا کنید. کافی است وارد سایت https://kool.dev شوید و دستور نصب آن را وارد کنید.

curl -fsSL https://kool.dev/install | bash

با اجرای این دستور ابزار kool برای شما نصب میشود و زین پس میتوانید زیرساخت و کدهای مربوط به داکر را برای انواع پروژه های خود به سرعت و دقت بالا اجرا کنید.

مثلا شما میخواهید پروژه لاراولی خود را داکرایز کنید البته یک نکته را هم بگم که خود لاراول یک پکیج برای داکر دارد که به laravel sail معرفی شده اما متاسفانه فقط برای وضعیت توسعه روی سیستم توسعه دهنده است و هیچ راهکاری را برای حالت production نمیدهد یعنی حتی ngnix را هم ندارد و کلیه تنظیمات بر اساس وضعیت تست و برنامه نویسی ساخته شده .

برای شروع البته باید قبلا این پست را خوانده باشید اگر در ایران و سرورهای ایران کار میکنید

$ kool create laravel my-project

سپس بعد از pull شدن میتوانید ساختار مورد نظر خود را مشابهه نمونه زیر کانفیگ کنید

در نهایت با وارد شدن به پروژه

cd my-project

مشاهده خواهید کرد که دو فایل docker-compose.yml و kool.yml به پروژه اضافه شده تا اینجا زیر ساخت ساخته شده و بعد باید تنظیمات .env پروژه را بر اساس داکر قرار دهید که به طور کامل در لینک زیر قابل دسترس است. البته داخل فایل kool.yml دستوراتی درج شده که در پایین توضیح دادم و شما میتوانید دستورات بیشتری را هم به آن اضافه کنید.

https://kool.dev/docs/presets/laravel#2-update-envexample

ضمنا kool به شما یکسری دستورات هم میده که دیگه نیاز به وارد شدن به shell container نداشته باشید چون وقتی شما اگر داکر استفاده میکنید مثل حالت عادی نمی تونید دستورات php artisan migrate را اجرا کنید حتما باید وارد container بشید و بعد اونجا واردش کنید اما با کمک kool دستورات به شکل زیر قابل استفاده هستند

kool run artisan migrate:fresh --seed

توضیحات بیشتر هم در ادامه لینک بالا قرار دارد اما دقیقا اینجاست

https://kool.dev/docs/presets/laravel#3-run-kool-run-setup

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

معمولا به دلیل عدم کانفیگ بودن سرور ایمیل بعضا در هنگام ریست رمز ورود شما ایملیی دریافت نمیکنید! اگر شما نتوانید ایمیل را دریافت کنید باید چه کار کرد ؟ شما باید وارد phpMyadmin شود و در جدول wp_users کاربر مورد نظر را که مثلا admin است را ویرایش کنید و در ستون password معادل پسورد موقت ۱۲۳۴۵۶۷۸ را وارد کنید و بعد از اینکه وارد ادمین شدید مجددا آن را به یک رمز قوی تغییر دهید.

نکته ای که وجود دارد شما نمیتوانید مقدار ۱۲۳۴۵۶۷۸ را وارد فیلد password کنید و باید معادل hash شده را جایگزین کنید این معادل عینا برابر پسورد ۱۲۳۴۵۶۷۸ است در غیراینصورت وردپرس رمز را نمیتواند تطلبق دهد

مقدار hash زیر را جایگزین فیلد password با مقدار قبلی کنید . توجه کنید که حتی یک فاصله خالی هم میتواند hash را نامعتبر کند.

$2y$12$7GZgHNnnMStUUgsUkG4KC.MswaKH2yq8.N0wM/B.vfr6F5/SoPteC

روش ساخت hero در صفحه نخست سایت

با استفاده از flex ها میتوان کارهای قشنک و اصولی ساخت یک نمونه hero صفحه نسخت است که در این آموزش گفته میشود.

<header class="hero">
  <div class="center-content">
    <h1>An Article Title</h1>
    <h3>A longer subtitle but still important</h3>
    <a href="#" class="button">Some Action Here</a>
  </div>
</header>
.hero {
  background-image: url("https://unsplash.it/1500?random");
  background-size: cover;
  background-position: center;
  width: 100wh;
  height: 100vh;
  display: flex;
}

.center-content {
  width: 400px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: auto;
}
.center-content h1, .center-content h3 {
  color: white;
  line-height: 1;
}
.center-content h1 {
  text-transform: uppercase;
  font-size: 3em;
  margin-bottom: 0;
  text-align: center;
}
.center-content h3 {
  margin-bottom: 40px;
  font-size: 1.5em;
  font-weight: normal;
}

.button {
  text-transform: uppercase;
  color: white;
  padding: 20px;
  border: 1px solid white;
  text-decoration: none;
}
.button:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.7);
  color: white;
}

جهت نمایش نسخه لایو

تغییر سورس های هاست در vs code

سلام احتمالا برای تغییر در سورس های سایت خود مجبورید وارد direct admin بشید و از طریف file manager فایل سورس سایت را تغییر میدید . این یک روش سریع است اما اگر مجبورید سورس هایی که در لوکال نیستند را توسعه بدید باید از قابلیت SFTP در vs code استفاده کنید با این پلاگین شما به پورت 22 (ممکنه از طریق هاست تغییر کرده باشه که باید از فروشنده هاست آن را سوال کنید) وصل بشید . طبق مراحل زیر ابتدا پلاگین Natizyskunk.sftp را نصب کنید.

ext install Natizyskunk.sftp

بعد با اجرای دستور CTRL + shift + p کامند پالت را باز کنید و دستور SFTP: config را وارد کنید و enter

در صفحه باز شده باید به نسبت هر سایت تنظیمات هاست را قرار بدید

{
    "name": "My Site",
    "host": "000.000.000.000",
    "protocol": "sftp",
    "port": 22,
    "username": "siteusername",
    "remotePath": "/home/mysite/domains/mysite.com/public_html",
    "uploadOnSave": true
}

در صورتی که مقدار remotePath را برابر اسلش / قرار بدید root را در نظر میگیرد و باید وارد مسیری که پروژه نصب شده وارد بشید ولی طبق مدل نمونه به صورت پیش فرض در مسیری که پروژه نصب شده وارد میشوید (مثال دایرکت ادمین است )

طبق تصویر زیر هم از منو سمت چپ روی ایکن SFTP کلیک کنید و با زدن روی نام سایت و وارد کردن پسورد هاست میتوانید دایرکتوری هاست را مشاهده کنید . البته برای ویرایش فایل ها باید با کلیک روی نام فایل و انتخاب گزینه Edit in local از این به بعد خیلی ساده با تغییر کد و ذخیره به صورت آنی روی هاست به روز میشود

افزونه vs code برای کار با laravel

برای کار با لاراول در vs code باید یکسری از افزونه را به صورت تکی جستجو کنید و نصب کنید که امروز به افزونه ای آشنا شدم به عنوان Laravel Extension Pack که لیستی از افزونه های زیر را به صورت گروهی همراه خودش نصب میکند.

Laravel Blade Snippets
Laravel Snippets
Laravel Artisan
Laravel Extra Intellisense
Laravel goto view
laravel-jump-controller Laravel controller
laravel-goto-components
Laravel Blade formatter
Laravel Create View Create
Laravel Blade Wrapper
DotENV .env

سایزهای استاندارد در bootstrap 5

کلیه کلاس های margin و padding در bootstrap 5 بر اساس rem تقسیم بندی میشوند به طور مثال

rempadding و margin
0.25m-1 , p-1
0.5m-2 , p-2
1m-3 , p-3
1.5m-4 , p-4
3m-5 , p4

فاصله بین هر col برابر با 1.5 rem یا 24 px است.

ساخت پکیج لاراول به شکل حرفه ای

ساخت package ها در لاراول شیوه های متفاوتی دارند که به طور کلی میتوانند عملکرد توسعه و نگهداری را ساده کنند در واقع یکی از بهترین روش ها استفاده از متد spite است که پکیج spatie/package-skeleton-laravel را جهت استفاده رایگان عرضه کرده است .

برای شروع کافی است وارد لینک فوق شوید و مطابق تصویر زیر روی use this temple کلیک کنید

سپس بعد از اتمام پکیج خود را در سیستم خود clone کنید و دستور php ./configure.php رادر root پروژه اجرا کنید . در این مرحله با پرسیدن یکسری سوالات میتوانید کانفیگ پکیج و name space های پروژه را بر اساس نیاز خود تغییر دهید.

مطابق مراحلی که در تصویر فوق کار شده است پکیج ها در vendor webine و عنوان پکیج shopCourse ساخته شده است.

ارتقا حجم import در وردپرس

اگر با خطای زیر مواجه شدید نگران نباشید

پرونده بارگذاری شده بزرگ‌تر از upload_max_filesize در php.ini است.

با نصب افزونه Increase maximum upload file size & execution time و اجرای تنظیمات مطابق تصویر زیر مشکل حل میشود

بهینه سازی تصاویر برای وب سایت به صورت آنلاین

بهینه سازی تصاویر یکی از بخش های مهم هر وبسایت است که مورد توجه زیادی است اخیرا طی بررسی پروژه های تیم گوگل به سایت https://squoosh.app رسیدم که این کار را به خوبی انجام میدهد .

شما میتوانید تصاویر را آپلود کنید و سپس آنها را به فشرده ترین فرمت webp تبدیل کنید.

اجرا عملیات فقط یک بار در لاراول

همانطور که در لاراول میتوان migration ها را فقط یکبار اجرا کرد، ممکن است نیازی پیش آید که یک کلاس هم مانند ماگریشن یکبار اجرا شود .

مثلا چیزی مانند اجرای یک کلاس برای این منظور از پکیج laravel-one-time-operations استفاده میکنیم . این پکیج ساختاری را به ما میدهد که میتوانیم عملیات های مورد نظر را فقط یکبار در طول اجرای و نصب و راه اندازی پروژه فراخوانی و اجرا کنیم .