Philocode
چی شد؟! 😂
این اتفاق وقتی میافته که توی اسم فایل view از نقطه استفاده کرده باشید:
return view('payment.callback');
لاراول نقطه رو با slash جایگزین میکنه و در نتیجه خیال میکنه که فایل شما اینجاست:resourcesدرحالیکه فایل شما اینجاست:
/ views
/ payment
callback{.extension}
resources
/ views
/ payment.callback{.extension}
👍2🔥1
Philocode
این اتفاق وقتی میافته که توی اسم فایل view از نقطه استفاده کرده باشید: return view('payment.callback'); لاراول نقطه رو با slash جایگزین میکنه و در نتیجه خیال میکنه که فایل شما اینجاست: resources / views / payment callback{.extension}…
GitHub
notice if dots have been used in the view name by WebPajooh · Pull Request #457 · facade/ignition
View directory names should not contain the . character.
https://laravel.com/docs/9.x/views#nested-view-directories
Today I got this message because I had used a name like foo.bar.blade.php for my...
https://laravel.com/docs/9.x/views#nested-view-directories
Today I got this message because I had used a name like foo.bar.blade.php for my...
❤3🔥2👍1
وقتی که یه سرویس نیاز داره کانفیگی رو از سیستم داشته باشه...
مثال: کلاس Payment میخواد بدونه که کدوم درگاه پرداخت، فعاله.
کانفیگ ما ممکنه متغیر سراسری (global) باشه، از دیتابیس خونده بشه یا هرچیزی. مهم نیست.
اینجا سرویس ما روی کانفیگهامون وابستگی (dependency) داره، ولی نیازی نیست کل کانفیگ رو بهش پاس بدیم:
مثال: کلاس Payment میخواد بدونه که کدوم درگاه پرداخت، فعاله.
کانفیگ ما ممکنه متغیر سراسری (global) باشه، از دیتابیس خونده بشه یا هرچیزی. مهم نیست.
اینجا سرویس ما روی کانفیگهامون وابستگی (dependency) داره، ولی نیازی نیست کل کانفیگ رو بهش پاس بدیم:
class Paymentبهجای اینجکتکردن کل آبجکت، فقط مقداری رو اینجکت کنید که سرویس واقعاً بهش نیاز داره. آبجکت appConfig ممکنه صدتا مقدار مختلف داخلش باشه و سرویس Payment جز یکی، نیازی به بقیهشون نداره.
{
private $config;
public function __construct(AppConfig $appConfig)
{
$this->config = $appConfig;
}
}
🔥1
Philocode
امشب این کتاب رو شروع کردم. به نظر کتاب خیلی خوبی میاد. #books #manning
ماتیاس نوباک میگه که آبجکتها دو نوع هستند:
+ Services
+ Other objects:
- Value objects
- Entities (models)
نوع اول باید immutable باشه، بر خلاف نوع دوم که میتونه دستکاری بشه.
+ Services
+ Other objects:
- Value objects
- Entities (models)
نوع اول باید immutable باشه، بر خلاف نوع دوم که میتونه دستکاری بشه.
👍1
این پکیج لاراولی، کد و ساختار پروژۀ شمارو تحلیل میکنه!
https://github.com/nunomaduro/phpinsights
#laravel
https://github.com/nunomaduro/phpinsights
#laravel
🔥2
Philocode
ماتیاس نوباک میگه که آبجکتها دو نوع هستند: + Services + Other objects: - Value objects - Entities (models) نوع اول باید immutable باشه، بر خلاف نوع دوم که میتونه دستکاری بشه.
میفرماید که ما کلاسی داریم که با پول سر و کار داره:
class Converterاما ممکنه که مقادیر غیر مجاز برای این دو پارامتر داده بشه، مثلاً برای amount عددی منفی بیاد یا اینکه برای currency مقدار "ABC" بیاد که واحد پول هیچ کشوری نیست! برای اینکه ولیدیشن رو داخل constructor انجام ندیم، اینهارو به عنوان تایپ مستقلی در میاریم:
{
public function __construct(float $amount, string $currency) { ... }
}
class Converterخیلی خوب شد، اما مثلاً خروجی ما میتونه Amount باشه درحالیکه به Currency هم نیاز داریم؛ به یه عبارت دیگه، این دو مقدار به هم ارتباط دارند و نمیخواییم جداشون کنیم، از طرفی توی بخشهای دیگۀ سیستم ممکنه به هرکدومشون به تنهایی نیاز پیدا کنیم، پس هر دو رو داخل تایپ جدیدی به اسم Money میذاریم:
{
public function __construct(Amount $amount, Currency $currency) { ... }
}
class Converterو خود Money هم اینطوری ساخته میشه:
{
public function __construct(Money $money) { ... }
}
class Money
{
public function __construct(Amount $amount, Currency $currency) { ... }
}👍2
Philocode
میفرماید که ما کلاسی داریم که با پول سر و کار داره: class Converter { public function __construct(float $amount, string $currency) { ... } } اما ممکنه که مقادیر غیر مجاز برای این دو پارامتر داده بشه، مثلاً برای amount عددی منفی بیاد یا اینکه برای currency…
مقالهای از مارتین فولر دربارۀ Value Objectها:
https://martinfowler.com/bliki/ValueObject.html
https://martinfowler.com/bliki/ValueObject.html
👍2
I can do it this way:
#HusseinNasr
http://localhostAnd if I want it to be fancy I can do it this way:
http://127.0.0.1And if I want it to be even fancier:
http://[::1] 😵💫😂#HusseinNasr
🔥2
امشب فکر میکردم که قدیمها هرچی فحش داشتیم، الآن یا تبدیل به شغل شده، یا گرایش! خدا عاقبت مارو به خیر کنه. 🤔
😁4
Philocode
مقالهای از مارتین فولر دربارۀ Value Objectها: https://martinfowler.com/bliki/ValueObject.html
میفرماید که Value Objectها ویژگیهایی دارن، از جمله این دو ویژگی:
1. اینکه immutable هستند، قرار نیست تغییرشون بدیم.
2. اینکه یکتا نیستند. بر خلاف entity که برای ذخیرهسازی و... نیاز داریم identifiable باشه، اینها نیاز نیست که identifiable باشند.
1. اینکه immutable هستند، قرار نیست تغییرشون بدیم.
2. اینکه یکتا نیستند. بر خلاف entity که برای ذخیرهسازی و... نیاز داریم identifiable باشه، اینها نیاز نیست که identifiable باشند.
👍2
Philocode
میفرماید که Value Objectها ویژگیهایی دارن، از جمله این دو ویژگی: 1. اینکه immutable هستند، قرار نیست تغییرشون بدیم. 2. اینکه یکتا نیستند. بر خلاف entity که برای ذخیرهسازی و... نیاز داریم identifiable باشه، اینها نیاز نیست که identifiable باشند.
یکی از دلایلی که نویسنده برای این آورده که value objectها بايد immutable باشند.
به اتفاق غیر منتظرهای که با تغییردادن پراپرتی acc1 (که یک value object ــه) افتاده توجه کنید.
به اتفاق غیر منتظرهای که با تغییردادن پراپرتی acc1 (که یک value object ــه) افتاده توجه کنید.
👍3
Philocode
یکی از دلایلی که نویسنده برای این آورده که value objectها بايد immutable باشند. به اتفاق غیر منتظرهای که با تغییردادن پراپرتی acc1 (که یک value object ــه) افتاده توجه کنید.
توی Javanoscript میشه اینطوری آبجکتهارو clone کرد. اگه به جای این کار (بهش میگیم spread) میاومدیم obj1 رو به obj2 اساین میکردیم، تغییر obj1 روی obj2 هم اعمال میشد چون بهش reference داشت.
👍2
Philocode
توی Javanoscript میشه اینطوری آبجکتهارو clone کرد. اگه به جای این کار (بهش میگیم spread) میاومدیم obj1 رو به obj2 اساین میکردیم، تغییر obj1 روی obj2 هم اعمال میشد چون بهش reference داشت.
حاصل کد زیر کدام است؟
console.log({ name: "John" } == { name: "John" })
console.log({ name: "John" } == { name: "John" })
Anonymous Quiz
45%
true
45%
false
11%
An error occuers
👍2
Philocode
یکی از دلایلی که نویسنده برای این آورده که value objectها بايد immutable باشند. به اتفاق غیر منتظرهای که با تغییردادن پراپرتی acc1 (که یک value object ــه) افتاده توجه کنید.
Inside an immutable object:
public withPassword (string plainTextPassword): UserInside a mutable object:
public setPassword (string plainTextPassword): void