با این روش میتونید از کامند های آرتیسان لاراول توی کدای پروژتون استفاده کنید
#laravel
#php
@CleverDevs
@CleverDevsGp
#laravel
#php
@CleverDevs
@CleverDevsGp
⚡7👎3👍1🔥1
توی این پست ویرگول اومدم مراحل نصب lamp sever روی سیستم های ارچ بیس رو قدم به قدم توضیح دادم
امیدوارم براتون مفید باشه
https://vrgl.ir/5gqkN
اگه خوشتون اومد با لایک و کامنت خوشحالم میکنید❤️
#lamp #php #apache #mariadb
@CleverDevs
@CleverDevsGp
امیدوارم براتون مفید باشه
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
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
اگه خواستید بیشتر بدونید میتونید یه نگاه به داکیومنت خود php بندازید
#php
@CleverDevs
@CleverDevsGp
یه فانکشن جدید تو php8.3 اضافه شده که میاد جیسون رو از نظر سینتکس برسی میکنه که سینتکسش اوکیه یا نه
و یه بولین بر میگردونه
برای اطلاعات بیشتر میتونید یه سر به این دوتا لینک بزنید
https://www.php.net/manual/en/function.json-validate.php
https://php.watch/versions/8.3/json_validate
#php
@CleverDevs
@CleverDevsGp
و یه بولین بر میگردونه
برای اطلاعات بیشتر میتونید یه سر به این دوتا لینک بزنید
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
یعنی اینکه مثلا شما رو سیستمتون php نسخه 8.2.12 دارید ولی اون پکیجه با نسخه 7.1 کار میکنه دیگه جای اینکه بیاید و یه ورژن پایینتر نصب کنید و این دردسرا . میتونید این تیکه کد رو به فایل composer.json اضافه کنید
#php
@CleverDevs
@CleverDevsGp
👌9 4👍2🔥2🆒1
کامپوزر یه آپشن why-not داره که بهتون میگه چرا نباید از فلان ورژن یک پکیج استفاده کنید
مثلا وقتی بزنید
لیستی از پکیج هارو میاره که با ورژن های بالاتر php کار میکنن
البته تو کد بالا جای php میتونید پکیج هارو هم بزارید
#php #composer
@CleverDevs
@CleverDevsGp
مثلا وقتی بزنید
composer why-not php 5.4
لیستی از پکیج هارو میاره که با ورژن های بالاتر php کار میکنن
البته تو کد بالا جای php میتونید پکیج هارو هم بزارید
#php #composer
@CleverDevs
@CleverDevsGp
🤯13👍4⚡2🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
👍6❤🔥2⚡2💯2🔥1🤯1👌1🆒1
توی php یه عملگر goto داریم
اینطوری که یه جای مینویسی goto x بعد تو خط های بعد مینویسی x: و کد از اون خط میپره به این خط یعنی کد بینشون اجرا نمیشه
به حروف کوچیک و بزرگ هم حساسه
توضیحات بیشتر با مثال های بیشتر رو میتونید تو داکیومنت ببینید
https://www.php.net/manual/en/control-structures.goto.php
پ.ن استفاده ازش رو توصیه نمیکنم
#php
@CleverDevs - @CleverDevsGp
اینطوری که یه جای مینویسی goto x بعد تو خط های بعد مینویسی x: و کد از اون خط میپره به این خط یعنی کد بینشون اجرا نمیشه
به حروف کوچیک و بزرگ هم حساسه
توضیحات بیشتر با مثال های بیشتر رو میتونید تو داکیومنت ببینید
https://www.php.net/manual/en/control-structures.goto.php
پ.ن استفاده ازش رو توصیه نمیکنم
#php
@CleverDevs - @CleverDevsGp
🔥16👍9👎5👌1🤣1
🔥17⚡4❤2👍1
توی این پست میخوام یه فیچر باحال لاراول به اسم macro رو معرفی کنم
ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید
در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده
حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید
برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :
حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :
برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید
https://ditty.ir/posts/laravel-macro/J6dqn
#Laravel #php
@CleverDevs - @CleverDevsGp
ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از 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🔥4❤3⚡3
Named Arguments توی php چیه و چه کاربردی داره ؟
این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم
مثلا تابع زیر رو تصور کنید
یک تابع سادس که میاد یه کاربر اضافه میکنه. تابع برای سه تا از پارامتر هاش مقدار دیفالت داره یعنی اگه پاسش ندیم اون مقدار دیفالت رو در نظر میگیره حالا فک کنید بخوایم یه کاربر اضافه کنیم و میخوایم شهر و سنش همون مقدار دیفالت باشه ولی جنسیتش رو ست کنیم اگه بخوایم پیشفرض و بر اساس ترتیب آرگومان هارو پاس بدیم نیازه که حتما مقدار شهر و سن رو هم توی آرگومان ها پاس بدیم تا بتونیم مقدار جنسیت رو بدیم اما در عوض میتونیم از طریق اسم پارامتر ها آرگومان هارو پاس بدیم مثل کد پایین
حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد
این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه
اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید
https://stitcher.io/blog/php-8-named-arguments
#php
@CleverDevs - @CleverDevsGp
این فیچر که توی 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
👍21❤6🔥3⚡1👌1
اگه دنبال کتابخونه ای برای توسعه ربات تلگرام با php میگردید ناتگرام از کتابخونه های جالبی بود که استفاده کردم
داکیومنت خوبی داره و آسونه ، لاراول هم ساپورت میکنه و آپدیته و ..
فقط حواستون باشه با php بالای 8 کار کنید
https://nutgram.dev
پ.ن اگه کتابخونه دیگهای میشناسید که خفنه میتونید تو کامنتا معرفی کنید
#php #bot #telegram
@CleverDevs - @CleverDevsGp
داکیومنت خوبی داره و آسونه ، لاراول هم ساپورت میکنه و آپدیته و ..
فقط حواستون باشه با 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, متن خام و ...) را مستقیماً از بدنهٔ درخواست دریافت کنید.
در این مثال، محتوای خام ورودی HTTP با file_get_contents از php://input خوانده شده و سپس از JSON به آرایه PHP تبدیل میگردد.
در نهایت نام کاربر خروجی گرفته میشود. اگر درخواست فوق رشتهٔ JSON
را ارسال کرده باشد، خروجی برنامه Hello Ali خواهد بود.
توجه داشته باشید php://input فقط خواندنی است و فقط یک بار میتوان محتوا را از آن خواند، یعنی پس از خواندن، محتوای آن خالی میشود. همچنین در مورد درخواستهای معمولی فرم (مانند multipart/form-data برای آپلود فایل)، استفاده از این استریم توصیه نمیشود، زیرا PHP آن دادهها را قبلاً پردازش کرده است.
2- php://output
این استریم خروجی استاندارد اسکریپت PHP را نمایندگی میکند. هر دادهای که در آن نوشته شود، مستقیماً به خروجی معمول برنامه (همان چیزی که مرورگر دریافت میکند یا در CLI ترمینال نشان داده میشود) فرستاده میشود.
زمانی که بخواهید با توابع استریم دادهای را به خروجی بفرستید (به جای استفاده از echo یا print)، میتوانید php://output را مانند یک فایل باز کرده و در آن بنویسید.
این قابلیت میتواند در سناریوهایی مفید باشد که یک تابع انتظار یک منبع استریم برای خروجی دارد یا هنگامی که میخواهید خروجی را از سایر عملیات جدا کنید.
در این قطعه کد، ما استریم خروجی را باز کردهایم و یک خط متن را با fwrite در آن نوشتیم. نتیجهٔ اجرای این کد نمایش متن ذکر شده در خروجی (مثلاً مرورگر یا کنسول) است. در واقع کاری که fwrite در اینجا انجام میدهد معادل همان echo کردن رشتهها است.
در قسمت های بعدی با سایر استریمها در PHP آشنا خواهیم شد.
#PHP #PHP_streams
@AmirhDeveloper
.
در 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🔥6❤5💯2