1 | <?php |
||
11 | trait HasTranslations |
||
12 | { |
||
13 | /** |
||
14 | * The "booting" method of the model. |
||
15 | * |
||
16 | * @return void |
||
17 | */ |
||
18 | protected static function bootHasTranslations() |
||
22 | |||
23 | /** |
||
24 | * @param $key |
||
25 | * @return string |
||
26 | */ |
||
27 | public function getAttributeValue($key) |
||
35 | |||
36 | /** |
||
37 | * @param $key |
||
38 | * @param $value |
||
39 | * @return HasTranslations |
||
|
|||
40 | */ |
||
41 | public function setAttribute($key, $value) |
||
52 | |||
53 | /** |
||
54 | * @param string $key |
||
55 | * @param string $locale |
||
56 | * @param bool $useFallbackLocale |
||
57 | * @return string |
||
58 | */ |
||
59 | public function translate(string $key, string $locale = '', bool $useFallbackLocale = true): string |
||
63 | |||
64 | /** |
||
65 | * @param string $key |
||
66 | * @param string $locale |
||
67 | * @param bool $useFallbackLocale |
||
68 | * @return string |
||
69 | */ |
||
70 | public function getTranslation(string $key, string $locale, bool $useFallbackLocale = true) |
||
84 | |||
85 | /** |
||
86 | * @param string $key |
||
87 | * @param string $locale |
||
88 | * @return string |
||
89 | */ |
||
90 | public function getTranslationWithFallback(string $key, string $locale): string |
||
94 | |||
95 | /** |
||
96 | * @param string $key |
||
97 | * @param string $locale |
||
98 | * @return string |
||
99 | */ |
||
100 | public function getTranslationWithoutFallback(string $key, string $locale) |
||
104 | |||
105 | /** |
||
106 | * @param string|null $key |
||
107 | * @return array |
||
108 | */ |
||
109 | public function getTranslations(string $key = null) : array |
||
125 | |||
126 | /** |
||
127 | * @param string $key |
||
128 | * @param string $locale |
||
129 | * @param $value |
||
130 | * @return HasTranslations |
||
131 | */ |
||
132 | public function setTranslation(string $key, string $locale, $value): self |
||
156 | |||
157 | /** |
||
158 | * @param string $key |
||
159 | * @param array $translations |
||
160 | * @return HasTranslations |
||
161 | */ |
||
162 | public function setTranslations(string $key, array $translations): self |
||
172 | |||
173 | /** |
||
174 | * @param string $key |
||
175 | * @param string $locale |
||
176 | * @return HasTranslations |
||
177 | */ |
||
178 | public function forgetTranslation(string $key, string $locale): self |
||
188 | |||
189 | /** |
||
190 | * @param string $locale |
||
191 | * @return HasTranslations |
||
192 | */ |
||
193 | public function forgetAllTranslations(string $locale): self |
||
201 | |||
202 | /** |
||
203 | * @param string $key |
||
204 | * @return array |
||
205 | */ |
||
206 | public function getTranslatedLocales(string $key) : array |
||
210 | |||
211 | /** |
||
212 | * @param string $key |
||
213 | * @return bool |
||
214 | */ |
||
215 | public function isTranslatableAttribute(string $key) : bool |
||
219 | |||
220 | /** |
||
221 | * @param string $key |
||
222 | * @param string|null $locale |
||
223 | * @return bool |
||
224 | */ |
||
225 | public function hasTranslation(string $key, string $locale = null): bool |
||
231 | |||
232 | /** |
||
233 | * @param string $key |
||
234 | */ |
||
235 | protected function guardAgainstNonTranslatableAttribute(string $key) |
||
241 | |||
242 | /** |
||
243 | * @param string $key |
||
244 | * @param string $locale |
||
245 | * @param bool $useFallbackLocale |
||
246 | * @return string |
||
247 | */ |
||
248 | protected function normalizeLocale(string $key, string $locale, bool $useFallbackLocale) : string |
||
268 | |||
269 | /** |
||
270 | * @return string |
||
271 | */ |
||
272 | protected function getLocale() : string |
||
276 | |||
277 | /** |
||
278 | * @return array |
||
279 | */ |
||
280 | public function getTranslatableAttributes() : array |
||
286 | |||
287 | /** |
||
288 | * @return array |
||
289 | */ |
||
290 | public function getTranslationsAttribute(): array |
||
298 | |||
299 | /** |
||
300 | * @return array |
||
301 | */ |
||
302 | public function getCasts() : array |
||
309 | } |
||
310 |
In PHP traits cannot be used for type-hinting as they do not define a well-defined structure. This is because any class that uses a trait can rename that trait’s methods.
If you would like to return an object that has a guaranteed set of methods, you could create a companion interface that lists these methods explicitly.