π· PHP
https://stitcher.io/blog/new-in-php-81
PHP 8.1: The End
PHP8.1κ³Ό ν¨κ» μ 곡λλ λͺ κ°μ§ μμ κΈ°λ₯κ³Ό λ³κ²½ μ¬νμ νΉλ³ν μμμμ΄ μΈκΈνκ³ μΆμ΅λλ€. λ°°μ΄μ μμκ° μ§μ λ μ«μ ν€λ§ ν¬ν¨λμ΄ μλμ§ νμΈνλ μλ‘μ΄ array_is_list ν¨μκ° μμ΅λλ€. ν΄λμ€ μμ finalλ‘ λ§λ€ μ μμ΅λλ€. νμΌ λ³κ²½ μ¬νμ λμ€ν¬μ κ°μ λ‘ λκΈ°ννλ μλ‘μ΄ fsyncκΈ°λ₯μ΄ μμ΅λλ€. μλ‘μ΄ λͺ
μμ 8μ§μ νκΈ°λ²μ΄ μμ΅λλ€. 0oλ° 0Oλ₯Ό μ¬μ©νμ¬ 8μ§μλ₯Ό μ λμ¬λ‘ μ¬μ©ν μ μμ΅λλ€. λ΄λΆ ν¨μμμ … Continued
PHP 8.1: The Never Type
ν¨μκ° μ λ λ°ν λμ§ μμ κ²μμ λνλ΄λ λ°©λ²μ
λλ€. Never Typeμ μμΈλ₯Ό λμ§κ±°λ μ€ν¬λ¦½νΈλ₯Ό μ’
λ£νλ€λ μλ―Έμ
λλ€. voidμ μ°¨μ΄μ μ μ ν λ°ννμ§ μλ κ²κ³Ό λΉκ΅νμ¬ ν¨μκ° μ무 κ²λ λ°ννμ§ μμμ λνλ
λλ€. μ΄λ¬ν ν¨μλ₯Ό νΈμΆνλ€λ κ²μ κ·Έ λ€μ μ€λ μ½λκ° λ¬΄μμ΄λ μ€νλμ§ μλλ€λ κ²μ μλ―Έν©λλ€. μ¬κΈ°μ voidλ ν¨μκ° μ무 κ²λ λ°ννμ§ μμμ λνλ
λλ€. neverλ₯Ό μΆκ°νμ¬ μ μ λΆμκΈ°λ κ·Έ κΈ°λ°μΌλ‘ … Continued
PHP8.1: Fibers
Fibersλ PHPμ νλ₯ν μΆκ° κΈ°λ₯μ
λλ€. green threadsλ‘ κ°λ low-level λ°©λ²μ
λλ€. λ°λ©΄μ νλ‘μ νΈμμ μ¬μ©ν κ°λ₯μ±μ λ€μ ν¬λ°ν©λλ€. low-level κ΅¬μ± μμμ΄λ©° λΉλκΈ°μ±μ μ²λ¦¬νλ λΌμ΄λΈλ¬λ¦¬μμλ§ μ¬μ©λ©λλ€. κ·ΈλΌμλ λΆκ΅¬νκ³ Fibersμ λν΄ μ΄μΌκΈ° ν κ°μΉκ° μμ΅λλ€. Fibersλ λμΌν 물리μ νλ‘μΈμ€ λ΄μμ λ³λ ¬ μ²λ¦¬νλ νλ λ°©λ²μ
λλ€. Fibersλ₯Ό μ¬μ©ν λ μ€μ λ€μ€ μ€λ λ λλ λ³λ ¬ νλ‘μΈμ€κ° μμ΅λλ€. μ¦, μ½λμμ λμμ μ€νλλ λΆλΆμ΄ … Continued
PHP 8.1: Performance
μ±λ₯μ μ΄μ λ²μ κ³Ό λΉκ΅ν μ μλ μ μ ν λ²€μΉλ§ν¬κ° μμ΅λλ€. νμ§λ§ Dmitryλ Inheritance Cacheλ₯Ό μΆκ°νμ΅λλ€. PHP ν΄λμ€λ (opcacheμ μν΄) λ³λλ‘ μ»΄νμΌ λ° μΊμλμ§λ§ κ° μμ²μ λν΄ λ°νμμ “linking“μ΄ μνλ©λλ€. “linking” νλ‘μΈμ€μλ μ¬λ¬ νΈνμ± κ²μ¬ λ° μ°¨μ© λ©μλ/μμ±/μμκ° λΆλͺ¨ λ° νΉμ±μ ꡬμ±νλ κ³Όμ μ΄ ν¬ν¨λ μ μμ΅λλ€. μ΄κ²μ μλΉν μκ°μ΄ 걸리μ§λ§ κ²°κ³Όλ κ° μμ²μμ λμΌν©λλ€. Inheritance Cacheλ λͺ¨λ … Continued
PHP 8.1: New in initializers
initializerμμ new ν€μλλ₯Ό μ¬μ©ν μ μκ² λμμ΅λλ€. πππ κ·Έκ² λ¬΄μμ΄λ? ν¨μμ μΈμμ κΈ°λ³Έκ°μ ν λΉνλ λ°©λ²μ μκ³ μμ΅λκΉ? μλ₯Ό λ€μ΄ $titleμ λν λΉ λ¬Έμμ΄μ λ€μκ³Ό κ°μ΅λλ€. κΈ°λ³Έ κ°μ²΄μμ μ΄μ μ§μ ν μ μμ΅λλ€. μ΄ μμ±μ publicΒ readonly λΆλΆμ μμμΌ μ΄ν΄κ° κ°λ₯ν©λλ€.
PHP 8.1: Readonly Properties
PHP 8.0μμλ promoted propertiesμμ±μ΄ λμ
λμμ΅λλ€ κ·Έλ¦¬κ³ μ΄μ readonly propertiesλ₯Ό μ»μμ΅λλ€! Awesome! μ½κΈ° μ μ© μμ±μ΄ 무μμΈκ°? κ°μ ν λ²λ§ μ€μ νλλ‘ νμ©νκ³ κ·Έ μμ λΆν° μμ± κ°μ λν λ³κ²½μ κΈμ§νλ μμ±μ
λλ€. μ½κΈ° μ μ© μμ±μ μ¬μ©νλ κ²μ κ° κ°μ²΄μ λ°μ΄ν° μ μ‘ κ°μ²΄λ₯Ό λͺ¨λΈλ§νλ μ’μ λ°©λ²μ
λλ€ μ°¨μ΄μ PHP 7.4 μ΄μ μ DTOλ λ€μκ³Ό κ°μ΅λλ€. PHP 7.4μ μ ν μμ±μ΄ μΆκ°λμ΄ λ¬Έμ … Continued
PHP 8.1: Pure Intersection Types
Pure Intersection Types νκΈλ§λ‘ μμ κ΅μ°¨ μ ν? μμκ΅μ°¨νμ
μ μ€λͺ
νκΈ°μλ μ½μ§λ§ μ μ λΆμκΈ°μ ν¨κ» μ¬μ©νμ§ μμ κ²½μ° μ½κ° λͺ¨νΈνκ² λ³΄μΌ μ μμ΅λλ€. λΉμ μ μ΄λ―Έ union typeμ λν΄ μ κ²μ΄λ€. μ΄ κ²μ “$fooμ μ νμ Aλλ B μ¬μΌν©λλ€”λΌκ³ λ§ν©λλ€. μ΄ κ²μ Aμ Bμ¬μΌ νλ€κ³ λ§ν©λλ€. κ΅μ°¨νμ
μ μμ²λΌ 보μ΄κ³ μλ§ μΆμΈ‘μ΄ κ°λ₯νμ κ²μ
λλ€. κ·Έλ λ€λ©΄ μ΄κ²μ μΈμ μ μ©ν κΉμ? μλ₯Ό λ€μ΄λ³΄κ² μ΅λλ€. … Continued
PHP 8.1: λ°°μ΄ νκΈ°
PHPμ λ°°μ΄ ν΄μ λ PHP 7.4λΆν° ν¬ν¨λμ΄ μμμ§λ§ μ νμ¬νμ΄ μμμ΅λλ€. μ«μ ν€κ° μλ λ°°μ΄λ§ νμ©λλ κ²μ
λλ€. κ·Έλμ μλ μ½λλ μ΄λ―Έ κ°λ₯νμμ΅λλ€. νμ§λ§ μλ μ½λλ PHP 8.1 μ΄μ λ²μ μμλ μ μμ μΌλ‘ λμνμ§ μμμ£ νμ§λ§ μ΄μ λ μ΄λ κ² μλν©λλ€. κ·Έλ°λ° λ¬Έμμ΄ ν€λ₯Ό μ¬μ©ν λ°°μ΄μ ν΄μ κ° μλνλ λ°©μμ array_mergeμ μλ λ°©μκ³Ό μ νν λμΌν©λλ€. μ¦, λμΌν ν€λ₯Ό κ°μ§ λ°°μ΄μ ν΄μ μ λν΄ μλ‘ … Continued
PHP8.1: First-Class Callables
PHP 8.1μμ νΈμΆ κ°λ₯ν ꡬ문μ μμ±νλ μλ‘μ΄ λ°©λ²μΈ First-Class νΈμΆ μ΄μ μλ λ€μκ³Ό κ°μ΄ μμ±ν μ μμμ΅λλ€. μ¦, λ€λ₯Έ μ’
λ₯μ ν¨μλ₯Ό μ°Έμ‘°νλ ν΄λ‘μ λ₯Ό μμ±νμ¬ ν΄λΉ ν΄λ‘μ λ₯Ό λ³μλ‘ μ¬μ©ν μ μμ΅λλ€. μ΄κ²μ λ΄κ° μ±κ°μ λΆλΆμ΄μμ΅λλ€. μ€μ ν¨μλ₯Ό μ°Έμ‘°νλ λ° μ¬μ©λλ ‘λ¬Έμμ΄’ μ΄λ¦κ³Ό λ°°μ΄μ λν΄ μ΄μΌκΈ°νλ κ²μ
λλ€. μ΄λ¬ν ν΄λ‘μ λ₯Ό μμ±νκΈ° μν μ μ ν λ΄μ₯ ꡬ문μ
λλ€! λ€μκ³Ό κ°μ΄ μμ±νλ©΄ λ©λλ€. … Continued
PHP 8.1: Enums
PHP8.1μλ Enumsκ° μΆκ°λ©λλ€. μ΄κ±°νμ μ΄μ μ μμ κ°μ 컬λ μ
μ λνλ΄μ§λ§ κ°μ₯ μ€μν κ²μ μ΄λ¬ν κ°μ λ€μκ³Ό κ°μ΄ μ
λ ₯ν μ μλ€λ κ²μ
λλ€. μ΄ μμμ μ΄κ±°νμ λ§λ€κ³ μ λ¬νλ©΄ BlogPostλ λ€μκ³Ό κ°μ΅λλ€. μ΄κ±°νμ λν΄ μμΈν μ΄ν΄λ³΄κ² μ΅λλ€! Enum methods μ΄κ±°νμ ν΄λμ€μ λ§μ°¬κ°μ§λ‘ λ©μλλ₯Ό μ μν μ μμ΅λλ€. μ΄κ²μ νΉν match μ°μ°μμ ν¨κ» μ¬μ©ν λ λ§€μ° κ°λ ₯ν κΈ°λ₯μ
λλ€. λ°©λ²μ λ€μκ³Ό κ°μ΄ μ¬μ©ν … Continued