CleverDevs
8.42K subscribers
709 photos
280 videos
27 files
415 links
به کانال کلوردوز خوش اومدین

سعی میکنیم چیزایی که بنظر کاربردی هستن رو باهاتون به اشتراک بزاریم


🔥لینوکس
🔥برنامه نویسی فرانت‌اند
🔥برنامه نویسی بک‌اند
🔥اخبار تکنولوژی و...

CleverDevs are better than other Devs
💢~> @mmdrsdev
Download Telegram
با این روش میتونید از کامند های آرتیسان لاراول توی کدای پروژتون استفاده کنید

#laravel
#php
@CleverDevs
@CleverDevsGp
7👎3👍1🔥1
توی این پست ویرگول اومدم مراحل نصب lamp sever روی سیستم های ارچ بیس رو قدم به قدم توضیح دادم
امیدوارم براتون مفید باشه


https://vrgl.ir/5gqkN

اگه خوشتون اومد با لایک و کامنت خوشحالم میکنید❤️
#lamp #php #apache #mariadb
@CleverDevs
@CleverDevsGp
4👎4🔥3👍1
لاراول امکان schedule کمتر از یک دقیقه رو فراهم کرد.

https://laravel.com/docs/10.x/scheduling#sub-minute-scheduled-tasks

#laravel #php

@CleverDevs
@CleverDevsGp
🔥7👎2
تو php یه تابع داریم به اسم extract همینطور که از اسمش معلومه میاد از ارایه اجزاشو استخراج میکنه یعنی به ازای هر key ٓتوی ارایه یه متغیر به همون اسم میسازه و مقدارش رو برابر با value موجود تو ارایه میزاره

اگه خواستید بیشتر بدونید میتونید یه نگاه به داکیومنت خود php بندازید
#php
@CleverDevs
@CleverDevsGp
2052🔥1
یه فانکشن جدید تو php8.3 اضافه شده که میاد جیسون رو از نظر سینتکس برسی میکنه که سینتکسش اوکیه یا نه

و یه بولین بر میگردونه

برای اطلاعات بیشتر میتونید یه سر به این دوتا لینک بزنید

https://www.php.net/manual/en/function.json-validate.php
https://php.watch/versions/8.3/json_validate

#php
@CleverDevs
@CleverDevsGp
👍9👌6
ممکنه بخواید با یه پکیج تو php کار کنید یا تستش کنید ولی اون پکیج با ورژن قبلی php کار کنه
یعنی اینکه مثلا شما رو سیستمتون php نسخه 8.2.12 دارید ولی اون پکیجه با نسخه 7.1 کار میکنه دیگه جای اینکه بیاید و یه ورژن پایینتر نصب کنید و این دردسرا . میتونید این تیکه کد رو به فایل composer.json اضافه کنید

#php
@CleverDevs
@CleverDevsGp
👌94👍2🔥2🆒1
کامپوزر یه آپشن why-not داره که بهتون میگه چرا نباید از فلان ورژن یک پکیج استفاده کنید

مثلا وقتی بزنید

composer why-not php 5.4

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


#php #composer
@CleverDevs
@CleverDevsGp
🤯13👍42🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
تریک باحال PHP

#php Src
@CleverDevs
@CleverDevsGp
👌12👍21🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
کلمه‌کلیدی readonly در php

#php Src
@CeverDevs
@CleverDevsGp
👍6❤‍🔥22💯2🔥1🤯1👌1🆒1
تریک لاراول برای داشتن کد تمیزتر

#php #laravel
@CleverDevs
@CleverDevsGp
9👍5🔥1🆒1
👍11
توی php یه عملگر goto داریم
اینطوری که یه جای مینویسی goto x بعد تو خط های بعد مینویسی x: و کد از اون خط میپره به این خط یعنی کد بینشون اجرا نمیشه

به حروف کوچیک و بزرگ هم حساسه

توضیحات بیشتر با مثال های بیشتر رو میتونید تو داکیومنت ببینید

https://www.php.net/manual/en/control-structures.goto.php


پ.ن استفاده ازش رو توصیه نمیکنم

#php
@CleverDevs - @CleverDevsGp
🔥16👍9👎5👌1🤣1
متد های whereAny و whereAll که تازه اومدن تو لاراول 👌

#php #laravel
@CleverDevs - @CleverDevsGp
🔥13👍5🆒2
کامند های artisan توی لاراول 11

#php #laravel
@CleverDevs - @CleverDevsGp
🔥1742👍1
This media is not supported in your browser
VIEW IN TELEGRAM
پی اچ پی همیشه متفاوت😂

#fun #php
@CleverDevs - @CleverDevsGp
🤣41😁8👍4
توی این پست میخوام یه فیچر باحال لاراول به اسم macro رو معرفی کنم

ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید

در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده

حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید

برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :

use Illuminate\Support\Collection;

public function boot()
{
Collection::macro('even', function () {
return $this->filter(function ($value) {
return $value % 2 === 0;
});
});
}


حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :

php 
$numbers = collect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

$evenNumbers = $numbers->even();

// $evenNumbers will now contain [2, 4, 6, 8, 10]


برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید

https://ditty.ir/posts/laravel-macro/J6dqn

#Laravel #php
@CleverDevs - @CleverDevsGp
👍17🔥433
‏Named Arguments توی php چیه و چه کاربردی داره ؟

این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم

مثلا تابع زیر رو تصور کنید

function createNewUser($name , $city = "Tehran" , $age = "18", $gender = ""){

$user = new User();
$user->name = $name;
$user->city = $city;
$user->age = $age;
$user->gender = $gender;
$user->save();
}


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



createNewUser(name : "Mammad" , gender : "male");


حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد

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

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

https://stitcher.io/blog/php-8-named-arguments

#php
@CleverDevs - @CleverDevsGp
👍216🔥31👌1
اگه دنبال کتابخونه ای برای توسعه ربات تلگرام با php میگردید ناتگرام از کتابخونه های جالبی بود که استفاده کردم

داکیومنت خوبی داره و آسونه ، لاراول هم ساپورت میکنه و آپدیته و ..

فقط حواستون باشه با php بالای 8 کار کنید


https://nutgram.dev

پ.ن اگه کتابخونه دیگه‌ای میشناسید که خفنه میتونید تو کامنتا معرفی کنید

#php #bot #telegram
@CleverDevs - @CleverDevsGp
2👍28🔥5🤣5
Forwarded from | AmirHossein |
استریم‌ ها در PHP - قسمت اول

در PHP، استریم (Stream) یک سازوکار انتزاعی برای مدیریت ورودی و خروجی داده‌ها است. به زبان ساده، استریم‌ها به شما امکان می‌دهند انواع مختلف منابع داده (مانند فایل‌های سیستم، درخواست‌های شبکه، داده‌های فشرده و ...) را از طریق یک رابط یکسان بخوانید یا بنویسید.

به جای آنکه برای هر نوع منبع تابع‌ها یا روش‌های جداگانه‌ای داشته باشید، PHP با استفاده از استریم‌ها یک مجموعه توابع عمومی (مثل fopen, fread, fwrite و ...) فراهم کرده که با همه این منابع به شکل یکنواخت رفتار می‌کنند.

هر استریم رَپر (Stream Wrapper) در PHP در واقع یک پروتکل یا طرح (scheme) خاص را پیاده‌سازی می‌کند که به صورت scheme:// استفاده می‌شود. برای مثال، file:// برای دسترسی به سیستم فایل محلی، http:// برای منابع وب، یا php:// برای منابع داخلی PHP استفاده می‌شود.

PHP به طور پیش‌فرض تعداد زیادی استریم رپر داخلی دارد که بسیاری از کارهای معمول را پوشش می‌دهند. شما می‌توانید توسط این استریم‌ها به سادگی کارهایی مثل خواندن فایل‌ها، دریافت داده از وب, نوشتن خروجی، خواندن ورودی خام درخواست‌ها و حتی کار با داده‌های فشرده‌شده را انجام دهید، بدون اینکه نگران جزئیات سطح پایین هر کدام باشید.

استریم‌های داخلی PHP - ‏php://

1- php://input

این استریم برای دسترسی به دادهٔ ورودی خام HTTP در PHP استفاده می‌شود. به طور خاص، این استریم محتوای خام بدنهٔ درخواست HTTP را (معمولاً در درخواست‌های POST یا PUT) ارائه می‌کند، بدون هیچ‌گونه پردازش یا parse خودکار.

زمانی که نیاز دارید ورودی خام درخواست را بخوانید (مثلاً دریافت داده‌های JSON از یک API کلاینت یا پردازش درخواست‌های RESTful)، این استریم بسیار مفید است. برخلاف متغیرهای سراسری مانند $_POST که فقط داده‌های form-urlencoded را می‌گیرند،
این استریم اجازه می‌دهد انواع داده‌ها (JSON, XML, متن خام و ...) را مستقیماً از بدنهٔ درخواست دریافت کنید.

$json = file_get_contents("php://input");
$data = json_decode($json, true);
echo "Hello " . $data["user"];

در این مثال، محتوای خام ورودی HTTP با file_get_contents از php://input خوانده شده و سپس از JSON به آرایه PHP تبدیل می‌گردد.
در نهایت نام کاربر خروجی گرفته می‌شود. اگر درخواست فوق رشتهٔ JSON
{"user": "Ali"}

را ارسال کرده باشد، خروجی برنامه Hello Ali خواهد بود.

توجه داشته باشید php://input فقط خواندنی است و فقط یک بار می‌توان محتوا را از آن خواند، یعنی پس از خواندن، محتوای آن خالی می‌شود. همچنین در مورد درخواست‌های معمولی فرم (مانند multipart/form-data برای آپلود فایل)، استفاده از این استریم توصیه نمی‌شود، زیرا PHP آن داده‌ها را قبلاً پردازش کرده است.

2- php://output

این استریم خروجی استاندارد اسکریپت PHP را نمایندگی می‌کند. هر داده‌ای که در آن نوشته شود، مستقیماً به خروجی معمول برنامه (همان چیزی که مرورگر دریافت می‌کند یا در CLI ترمینال نشان داده می‌شود) فرستاده می‌شود.
زمانی که بخواهید با توابع استریم داده‌ای را به خروجی بفرستید (به جای استفاده از echo یا print)، می‌توانید php://output را مانند یک فایل باز کرده و در آن بنویسید.

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

$fp = fopen("php://output", "w");
fwrite($fp, "Hello World!");
fclose($fp);

در این قطعه کد، ما استریم خروجی را باز کرده‌ایم و یک خط متن را با fwrite در آن نوشتیم. نتیجهٔ اجرای این کد نمایش متن ذکر شده در خروجی (مثلاً مرورگر یا کنسول) است. در واقع کاری که fwrite در اینجا انجام می‌دهد معادل همان echo کردن رشته‌ها است.

در قسمت های بعدی با سایر استریم‌ها در PHP آشنا خواهیم شد.

#PHP #PHP_streams
@AmirhDeveloper
.
👍28🔥65💯2