Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php

Готовимся ΠΊ собСсСдованию ΠΏΠΎ PHP: Всё, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± интСрфСйсах, совмСстимости сигнатур ΠΈ Π½Π΅ побоялись ΡƒΠ·Π½Π°Ρ‚ΡŒ

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 9b92884f0c7c49599d874f02890c19d3. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-9b92884f0c7c49599d874f02890c19d3. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 9b92884f0c7c49599d874f02890c19d3. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Казалось Π±Ρ‹ β€” Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ интСрфСйса? «ΠšΠ°ΠΊ Π±Ρ‹ класс, Π½ΠΎ ΠΈ Π½Π΅ класс, нСльзя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр, скорСС ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… классов, содСрТит Π² сСбС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²» β€” Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌΠΈ словами Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚Π΅ Π½Π° собСсСдовании Π½Π° Π΄Π΅ΠΆΡƒΡ€Π½Ρ‹ΠΉ вопрос ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ интСрфСйс?

Однако Π½Π΅ всё Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ программисту Π½Π° PHP. ΠŸΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, руководство ΠΏΠΎ языку Π²Π²ΠΎΠ΄ΠΈΡ‚ вас Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΠ΄Π΅ таятся Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ камни»…

Π’Ρ€ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ части:

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ интСрфСйс?

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π±Π΅Π· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: сразу послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (сигнатуры) ΠΌΠ΅Ρ‚ΠΎΠ΄Π° слСдуСт Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой:

Π§ΡƒΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ (хотя ΠΈ описан Π² ΠΌΠ°Π½ΡƒΠ°Π»Π΅) Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ интСрфСйс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ константы (разумССтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅!):

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ константы Π² интСрфСйсах Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ распространСния Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, хотя ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π°? ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² интСрфСйсС-наслСдникС ΠΈΠ»ΠΈ Π² классС, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌ Π΄Π°Π½Π½Ρ‹ΠΉ интСрфСйс. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ интСрфСйсов β€” самыС константныС константы Π² ΠΌΠΈΡ€Π΅ πŸ™‚

Π§Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ интСрфСйс?

Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚. ΠšΡ€ΠΎΠΌΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… констант.

НСльзя Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² интСрфСйс:

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ сигнатур ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

Для дальнСйшСго изучСния интСрфСйсов Π½Π°ΠΌ с Π²Π°ΠΌΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ ваТнСйшСм понятии, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ нСзаслуТСнно ΠΎΠ±ΠΎΠΉΠ΄Π΅Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π² ΠΌΠ°Π½ΡƒΠ°Π»Π΅ ΠΏΠΎ PHP: ΠΎ понятии «совмСстимости сигнатур».

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° β€” это описаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΌΠ΅Ρ‚ΠΎΠ΄Π°), Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π² сСбя:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, A ΠΈ B.
Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ B считаСтся совмСстимой с A (порядок Π²Π°ΠΆΠ΅Π½, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ нСсиммСтрично!) Π² строгом смыслС, Ссли:

Они ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚

Π’Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ случай, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚ Π½Π΅Ρ‡Π΅Π³ΠΎ.

B добавляСт ΠΊ A Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

B суТаСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ A

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ эти Ρ‚Ρ€ΠΈ простых ΠΏΡ€Π°Π²ΠΈΠ»Π° совмСстимости ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, станСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ дальнСйшиС тонкости, связанныС с интСрфСйсами.

НаслСдованиС интСрфСйсов

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°:

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ-наслСдник ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ интСрфСйса-ΠΏΡ€Π΅Π΄ΠΊΠ° Π² наслСдство всС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€Π΅Π΄ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ константы.

Π’ интСрфСйсС-наслСдникС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Но Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ сигнатура Π±ΡƒΠ΄Π΅Ρ‚ Π² точности ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с сигнатурой Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ, Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ совмСстима (см. ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π»):

Если Π»ΠΈ Π² PHP мноТСствСнноС наслСдованиС?

Если Π²Π°ΠΌ Π·Π°Π΄Π°Π΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΎΠΉ вопрос, смСло ΠΎΡ‚Π²Π΅Ρ‡Π°ΠΉΡ‚Π΅: Β«Π΄Π°Β». Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… интСрфСйсов.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ всё:

ΠŸΡ€Π°Π²ΠΈΠ»Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² сигнатур ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈ мноТСствСнном наслСдовании Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π²Ρ‹ΡˆΠ΅:

β€” Π»ΠΈΠ±ΠΎ сигнатуры ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ
β€” Π»ΠΈΠ±ΠΎ сигнатура ΠΌΠ΅Ρ‚ΠΎΠ΄Π° интСрфСйса, упомянутого Π² спискС ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ совмСстима с сигнатурой ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ° (Π΄Π°, порядок упоминания ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ это ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΈΠΉ кСйс, просто Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ Π΅Π³ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅)

Вонкости Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйсов

БобствСнно, послС всСго, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, это ΡƒΠΆΠ΅ ΠΈ Π½Π΅ тонкости, Π° Ρ‚Π°ΠΊ, ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, наслСдованиС класса ΠΎΡ‚ интСрфСйса называСтся Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Бмысл Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ просто ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π² наслСдство ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ константы, Π½ΠΎ обязаны Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π½Ρ‹ сигнатурами, Π½Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠΎΠ΄ΠΎΠΌ:

Π’Π°ΠΆΠ½Ρ‹ΠΉ аспСкт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ интСрфСйса ΠΎΡ‚ наслСдования ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ классС нСсколько интСрфСйсов сразу.

Как Π±Ρ‹Ρ‚ΡŒ, Ссли Π² Ρ€Π°Π·Π½Ρ‹Ρ… интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ класс, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ (с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ)? Π‘ΠΌΠΎΡ‚Ρ€ΠΈ Π²Ρ‹ΡˆΠ΅ β€” Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ наслСдовании интСрфСйсов Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ совмСстимости сигнатур.

И Π΄Π°. НС Π²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠ°Π½ΡƒΠ°Π»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ·Π³Π»Π°ΡˆΠ°Π΅Ρ‚:

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² классС, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌ интСрфСйс, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с сигнатурами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² интСрфСйсС, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Π°Ρ ошибка.

The class implementing the interface must use the exact same method signatures as are defined in the interface. Not doing so will result in a fatal error.

Всё Π½Π΅ Ρ‚Π°ΠΊ, дСйствуСт Ρ‚ΠΎΠΆΠ΅ самоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ совмСстимости:

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ β€” это класс? Pro et Contra

Π’ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ Π½Π΅Ρ‚. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ β€” это интСрфСйс, ΠΎΠ½ отличаСтся ΠΎΡ‚ класса хотя Π±Ρ‹ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ нСльзя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ «экзСмпляр интСрфСйса».

И Π²ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ Π΄Π°, Ρƒ Π½ΠΈΡ… Π² PHP ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ:

Π§Ρ‚ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π½ΠΎΡ‡ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ отвСтствСнным собСсСдованиСм?

РазумССтся, ΠΌΠ°Π½ΡƒΠ°Π» ΠΏΠΎ языку:

БистСмный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡΠ°ΠΌΠΎΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½. И, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ мнСнию, Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ Π² IT ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ самообучСниС Π²Π΅Π±ΠΈΠ½Π°Ρ€Ρ‹ ΠΈ краткосрочныС курсы. ИмСнно поэтому я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ (ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ скромно Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€ΡƒΡŽ) Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎΡΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΎΠ²Ρ‹Π΅ Π²Π΅Π±ΠΈΠ½Π°Ρ€Ρ‹ ΠΈ курсы ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΌ сочСтании курсов ΠΈ самоподготовки всСгда Π½Π°Π»ΠΈΡ†ΠΎ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы?

Π”Ρ€ΡƒΠ·ΡŒΡ, Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ задавался вопросом ΠΈ Π·Π°Π΄Π°Π²Π°Π» вопрос здСсь, бСспокоит ΠΈ Π½Π΅ Π΄Π°Ρ‘Ρ‚ покоя ΠΌΡ‹ΡΠ»ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы Π² php Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π•ΡΡ‚ΡŒ ΠΊΡƒΡ‡ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π³Π΄Π΅ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡΡ лишь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ, ΠΎΠ½ΠΈ Π·Π°Π΄Π°ΡŽΡ‚ Тёстко Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ структуру для Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ обязаны Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½ΠΎ Ρ‚ΠΎΠ»ΠΊΡƒ, Π½Π΅ΡƒΠΆΠ΅Π»ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² этом, бороздя ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ интСрфСйсам Π±Ρ‹Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ мнСния Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ НЕмноТСствСнноС наслСдованиС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ? ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ поТалуйста, элСмСнтарный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ связи, ΠΊΠ°ΠΊ это происходит?

Допустим Π΅ΡΡ‚ΡŒ интСрфСйс с ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ классы Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ ΠΏΠΎΠ΄ свои Π½ΡƒΠΆΠ΄Ρ‹ ΠΊΠ°ΠΊ ΠΈΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹, Π½ΠΎ Π²Π΅Π·Π΄Π΅ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ, ΠΈ это всё? Допустим наслСдовались ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» интСрфСйс, дальшС Ρ‡Ρ‚ΠΎ?

Π’Π΅Ρ€Π½Ρ‘Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки, это ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСсов?

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. dVTjR. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-dVTjR. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° dVTjR. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

2 ΠΎΡ‚Π²Π΅Ρ‚Π° 2

Π‘ интСрфСйсами ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Ρ‚Π΅Ρ… языках, Π³Π΄Π΅ Π½Π΅Ρ‚ ΡƒΡ‚ΠΈΠ½ΠΎΠΉ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ.

Всё Π΅Ρ‰Ρ‘ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚? ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ php интСрфСйс ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ свой вопрос.

БвязанныС

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Π»Π΅Π½Ρ‚Ρƒ

Для подписки Π½Π° Π»Π΅Π½Ρ‚Ρƒ скопируйтС ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ эту ссылку Π² Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для чтСния RSS.

Π΄ΠΈΠ·Π°ΠΉΠ½ сайта / Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Β© 2021 Stack Exchange Inc; ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° условиях Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ cc by-sa. rev 2021.11.12.40742

НаТимая Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ cookieΒ» Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Stack Exchange ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ cookie Π½Π° вашСм устройствС ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² соотвСтствии с нашСй ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² cookie.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. default img. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-default img. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° default img. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы Π² PHP.

Π’ этой Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ΅, ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ, ΠΊΡ€Π°Ρ‚ΠΊΠΎ, ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΈΡ… случаях стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйсы Π² PHP ΠΈ привСсти ΠΏΡ€ΠΈΠΌΠ΅Ρ€ практичСского ΠΈΡ… использования.

Для Π½Π°Ρ‡Π°Π»Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Π΅Π· использования интСрфСйса.

Π’ΠΎΡ‚ Π² Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ интСрфСйсы. Они ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π² создании шаблонов для классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½ΠΎ своим способом. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстрСС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π»Π΅Π³Ρ‡Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΊ ΠΆΠ΅, ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡΠ»Π°Π±ΡƒΡŽ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ классами, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π’ ΠΌΠΎΠ΅ΠΌ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ интСрфСйс обязуСт Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ классы ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ insert(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ (допустим) нСпосрСдствСнно Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ вставкой Π΄Π°Π½Π½Ρ‹Ρ…. А ΠΊΡ€ΠΎΠΌΠ΅ Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Для класса saveDb, это, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚ΠΎΠ΄ connectDb(), ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ соСдинСниС с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Для тСстирования, я сдСлал Π²Ρ‹Π²ΠΎΠ΄ сообщСний ΠΏΡ€ΠΈ срабатывании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° insert().

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π² конструктор Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ класса ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ класс-сСрвис, указывая, Ρ‡Ρ‚ΠΎ ΠΎΠ½ относится ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ интСрфСйсу ΠΈ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ для всСх классов Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ), кстати, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ прямо Π² ΠΊΠΎΠ΄Π΅ интСрфСйса Π²ΠΎΠ·Π»Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС строк Ρ‡Π΅ΠΌ Π² Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ классах.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, вмСсто зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ класса (saveDb) пСрСдаСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ интСрфСйса Save:

Код класса Date Π½Π΅ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ интСрфСйса. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ построСн Π½Π° Π±Π°Π·Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° «Dependency injection», Ρ‡Ρ‚ΠΎ пСрСводится ΠΊΠ°ΠΊ «Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимости».
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ обСспСчиваСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²ΠΎ всСх классах ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° insert():

ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ этом мСсто хранСния зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· классов. Π’Π°ΠΊ, ΠΌΠ΅Ρ‚ΠΎΠ΄ insert() класса saveDb сохраняСт Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ΅Ρ‚ΠΎΠ΄ insert() класса saveFile сохраняСт Π² Ρ„Π°ΠΉΠ» ΠΈ Ρ‚Π΄. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ класс Date ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π» со всСми классами интСрфСйса Save ΠΈ ΠΏΡ€ΠΈ этом, ΠΊΠΎΠ΄ самого класса Date Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс, Π±Π΅Π· нСобходимости ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ пространство ΠΈΠΌΡ‘Π½ с классами ΠΈ Ρ‚Ρ€Π΅ΠΉΡ‚Π°ΠΌΠΈ, поэтому ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.

ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² интСрфСйсах, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ общСдоступными, Ρ‡Ρ‚ΠΎ слСдуСт ΠΈΠ· самой ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ интСрфСйса.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ интСрфСйсы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π΄Π²ΡƒΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… случаях:

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ магичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, трСбуя ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… классов Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π₯отя ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, использованиС конструкторов Π² интСрфСйсах Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ рСкомСндуСтся. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ интСрфСйс. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊ конструкторам Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° наслСдования, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΠΎΠΌΡƒ ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ повСдСнию.

implements

Класс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли объявлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΎΠ±ΠΎΠΈΡ… интСрфСйсах ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ.

Класс, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ интСрфСйс, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для своих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² имя, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ интСрфСйса. Однако, начиная с PHP 8.0, Π² языкС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² интСрфСйсС. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ использовали Ρ‚Π΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ интСрфСйс.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ унаслСдованы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ классы, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° extends.

Класс, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ интСрфСйс, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² интСрфСйсС с совмСстимой сигнатурой.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ( Constants )

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ константы. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ интСрфСйсов Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ константы классов, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ классом ΠΈΠ»ΠΈ интСрфСйсом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ интСрфСйса

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 НаслСдованиС интСрфСйсов

interface A
<
public function foo ();
>

// Π­Ρ‚ΠΎ сработаСт
class C implements B
<
public function foo ()
<
>

// Π­Ρ‚ΠΎ Π½Π΅ сработаСт ΠΈ выдаст Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ
class D implements B
<
public function foo ()
<
>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #3 ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС интСрфСйсов

interface A
<
public function foo ();
>

interface B
<
public function bar ();
>

class D implements C
<
public function foo ()
<
>

public function bar ()
<
>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #4 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ с константами

interface A
<
const B = ‘ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° интСрфСйса’ ;
>

// Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° интСрфСйса
echo A :: B ;

// Π­Ρ‚ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ
// константы ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ нСльзя.
class B implements A
<
const B = ‘ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° класса’ ;
>
?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #5 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ с абстрактными классами

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #6 ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ, совмСстно с объявлСниями Ρ‚ΠΈΠΏΠΎΠ², прСдоставляСт ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ instanceof ΠΈ объявлСниС Ρ‚ΠΈΠΏΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ абстрактныС классы ΠΈ интСрфСйсы Π² php?

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ 15 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5cd9b49bc1e96349723412. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5cd9b49bc1e96349723412. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5cd9b49bc1e96349723412. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5cd9b49bc1e96349723412. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5cd9b49bc1e96349723412. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5cd9b49bc1e96349723412. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5cd9b49bc1e96349723412. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5cd9b49bc1e96349723412. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5cd9b49bc1e96349723412. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5d43fae866141254219965. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5d43fae866141254219965. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5d43fae866141254219965. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. c0799eef95b24ef49746e4b9e199c573. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-c0799eef95b24ef49746e4b9e199c573. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° c0799eef95b24ef49746e4b9e199c573. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5c3da50924225254324131. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5c3da50924225254324131. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5c3da50924225254324131. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5d43fae866141254219965. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5d43fae866141254219965. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5d43fae866141254219965. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Абстрактный класс- это Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для
1) ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π§ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π°
2) УвСрСнности Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5c3da50924225254324131. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5c3da50924225254324131. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5c3da50924225254324131. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π”Π°Π»Π΅Π΅ ΡƒΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ этого интСрфСйса Π½Π° всСх наслСдниках класса Tariff Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΈ Π½Π΅ парится, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создаст Π½ΠΎΠ²ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Π°Ρ€ΠΈΡ„Π° ΠΈ с Ρ‚Π²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° посыпятся Π±Π°Π³ΠΈ

Π”Π°, носят чисто Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. acuna. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-acuna. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° acuna. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Ruslan Ruslanov, Π½Π΅ для упрощСния ΠΊΠΎΠ΄Π°, Π° для стандартизации взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Если Π½Π° вашСм ΠΊΠΎΠΌΠΏΠ΅ Π΅ΡΡ‚ΡŒ юсб Π²Ρ…ΠΎΠ΄, Ρ‚ΠΎ ΠΈ ΠΌΡ‹ΡˆΠΊΠ° Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ интСрфСйсом. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС юсб это стандарт для Π²Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², соблюдая ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ….

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ классы для этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5c666690035e3786776553. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5c666690035e3786776553. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5c666690035e3786776553. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π‘ интСрфСйсами самый простой кСйс:

1) ПишСм ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ интСрфСйс.
2) Ѐункция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ интСрфСйса ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.
3) Π“Π΄Π΅-Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт интСрфСйс.

Π’.Π΅. допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-касса ΠΈ Π΅ΡΡ‚ΡŒ 20 ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ. Π‘Π°ΠΌΠ° ΠΎΠ½Π»Π°ΠΉΠ½-касса Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с интСрфСйсом ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°, Π° ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… классах ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Ρ… систСм.

Из минусов, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ вСсьма «ΠΈΠ·ΡΡ‰Π½ΠΎ» Π½Π°Ρ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ лоТатся Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ интСрфСйса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΏ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° согласно «Π²Π΅Ρ€Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ» Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°.

Абстрактный класс. Π½Ρƒ допустим, ΠΌΡ‹ Π΄Π°Π»Π΅ΠΌ абстрактный класс DTO, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ to_string ΠΈ normalize. ΠΠ°ΡΠ»Π΅Π΄ΡƒΡŽΡΡΡŒ ΠΎΡ‚ этого абстрактного класса, ΠΌΡ‹ Π²ΠΎ всСх DTO ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ to_string ΠΈ normalize. Плюс защищаСмся ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ Π½Π°ΠΌ Π·Π°ΠΏΠΎΡ€ΠΎΠ°Ρ‚ΡŒ этот абстрактный класс, Π»ΠΈΠ±ΠΎ «Ρ€Π΅ΡˆΠΈΡ‚» Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Π² своСм DTO

Ну Π²ΠΎΠΎΠ±Ρ‰Π΅, это всС Π½ΡƒΠΆΠ½ΠΎ, Ссли Ρ‚Ρ‹ пишСшь Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Symfony ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. Если это ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π±Π»ΠΎΠΆΠΈΡ‚ ΠΈΠ»ΠΈ нСбольшой новостник, Ρ‚Π΅Π±Π΅ это всС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5c4f04ba7ef47186680424. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5c4f04ba7ef47186680424. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5c4f04ba7ef47186680424. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

АбстрактныС классы Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС, Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ± эта Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»Π° смысл, Π½ΡƒΠΆΠ½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠΊΠ°: Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ подробностями Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ΠΉ. Если Π²Ρ‹ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ ΠΊ абстрактным классам Π² соврСмСнных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ сам ΠΏΠΎ сСбС абстрактный класс Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла. НапримСр, Ссли ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ new, Ρ‚ΠΎ этому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ всё Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы.

> ΠΈ Π² этом случаС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π² Ρ†ΠΈΠΊΠ»Π΅ foreach.

Π― Π±Ρ‹ сказал, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π· Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π½ΠΎ смоТСт, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒΡΡ. πŸ™‚ Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ тонкая Ρ€Π°Π·Π½ΠΈΡ†Π°, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5c4f04ba7ef47186680424. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5c4f04ba7ef47186680424. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5c4f04ba7ef47186680424. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5beea1ba8dfba620876476. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5beea1ba8dfba620876476. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5beea1ba8dfba620876476. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

1. Абстрактный класс нСльзя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ ΠΎΡ‚ наслСдуСмого класса
2. Абстрактный класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ интСрфСйса
3. Абстрактный класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классах
4. МоТно ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу нСсколько интСрфСйсов, Π° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса.
5. Π’Ρ€Π΅ΠΉΡ‚Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с интСрфСйсами

ОсознаниС Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ, ΠΏΡ€ΠΈΠΉΠ΄Ρ‘Ρ‚ ΠΊ Π²Π°ΠΌ Π² процСссС использования)) ΠŸΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎ SOLID, ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π±Π΅Π· абстракций ΠΈ интСрфСйсов)

P.S. Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ класса. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚, ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠšΡ€ΡƒΠ³. И класс Π―Ρ‰ΠΈΠΊ. ΠœΡ‹ добавляСм Π² ящик, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΈΠ· Ρ„ΠΈΠ³ΡƒΡ€, ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ всСх Ρ„ΠΈΠ³ΡƒΡ€ Π² ящикС.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5beea1ba8dfba620876476. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5beea1ba8dfba620876476. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5beea1ba8dfba620876476. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5cd9b49bc1e96349723412. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5cd9b49bc1e96349723412. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5cd9b49bc1e96349723412. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5beea1ba8dfba620876476. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5beea1ba8dfba620876476. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5beea1ba8dfba620876476. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5beea1ba8dfba620876476. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5beea1ba8dfba620876476. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5beea1ba8dfba620876476. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Ruslan Ruslanov, Π—Π°Ρ‡Π΅ΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρƒ Π΄Π²Π΅ стороны? Π­Ρ‚ΠΎ ΠΆΠ΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, Ρƒ Π½Π΅Π³ΠΎ стороны Ρ€Π°Π²Π½Ρ‹

Плюс врываСтся ΠΎΠ±Π΅Π·ΡƒΠΌΠ΅Π²ΡˆΠΈΠΉ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ, ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΡ€ΡƒΠ³Π° ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°

P.S. Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ класса. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚, ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠšΡ€ΡƒΠ³. И класс Π―Ρ‰ΠΈΠΊ. ΠœΡ‹ добавляСм Π² ящик, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΈΠ· Ρ„ΠΈΠ³ΡƒΡ€, ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ всСх Ρ„ΠΈΠ³ΡƒΡ€ Π² ящикС.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5beea1ba8dfba620876476. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5beea1ba8dfba620876476. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5beea1ba8dfba620876476. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

))) Π― вас ΡƒΠ΄ΠΈΠ²Π»ΡŽ, Π½ΠΎ условия Π² ΠΆΠΈΠ·Π½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ Ρ‡Π΅ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹, ΠΈ Π½Π΅ всСгда ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° Ρ‚Π΅ Ρ‡Ρ‚ΠΎ оТидалось ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ. Для этого люди ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ. Π§Ρ‚ΠΎΠ± ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, минимально ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄. А дальшС ΡƒΠΆΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΡ‰Π΅Ρ‚ для своСй Π·Π°Π΄Π°Ρ‡ΠΈ эту Π·ΠΎΠ»ΠΎΡ‚ΡƒΡŽ сСрСдину. Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎΠ± Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ.

Π’ΠΎΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ это ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, Π° ΠΊΠ°ΠΊ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΎ Ρ‡Ρ‘ΠΌ Ρ€Π΅Ρ‡ΡŒ ΠΈ для Ρ‡Π΅Π³ΠΎ это всё. Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ смСло ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ всё ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ хочСтся)
https://ota-solid.now.sh/

P.S. Π’ любом случаС, это ΠΎΡ‡Π΅Π½ΡŒ часто ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ Π½Π° собСсСдованиях, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли ваши ΠΏΠ»Π°Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€Π°Π½Π΄ΠΈΠΎΠ·Π½Ρ‹, Ρ‡Π΅ΠΌ малСнький самописный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ сами Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈ Π½Π΅ мСняСтС Π² Π½Ρ‘ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‚ΠΎ стоит подготовится

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5beea1ba8dfba620876476. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5beea1ba8dfba620876476. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5beea1ba8dfba620876476. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° просто Π±ΡƒΠ΄Π΅Ρ‚ слоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. 5d6fccd8cdf85034572833. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php Ρ„ΠΎΡ‚ΠΎ. Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php-5d6fccd8cdf85034572833. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ интСрфСйсы php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 5d6fccd8cdf85034572833. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появившись Π² PHP 5, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ заняли ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ «класс-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉΒ»?) части языка.

ΠΎΠ½ (абстрактный класс) носит чисто Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€, Π½ΡƒΠΆΠ΅Π½ для ограничСния дСйствий Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, удобства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ это лишь «ΡΠ°Ρ…Π°Ρ€?.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *