Slide 1

Slide 1 text

Copyright© M&A PHP Stannum PHPerKaigi 2 0 2 2

Slide 2

Slide 2 text

Copyright© M&A 2 M&A Twitter: @myskng (Twitter ... ...) GitHub: @tumugin PHP(Laravel) JavaScript TypeScript(Vue) ( Ruby Kotlin ...)

Slide 3

Slide 3 text

Copyright© M&A 3

Slide 4

Slide 4 text

Copyright© M&A 4

Slide 5

Slide 5 text

Copyright© M&A 5 ) , , , , , ,, ,,, ... string string

Slide 6

Slide 6 text

Copyright© M&A 6 ( ...) ( UI )

Slide 7

Slide 7 text

Copyright© M&A Ruby 7 ....? ' , , , , , ,, ,,,' .split(',') .filter { |s| !s.strip.empty? } .map { |s| s.strip } .uniq => [" ", " ", " ", " "] PHP ....( )

Slide 8

Slide 8 text

Copyright© M&A PHP 8 PHP ... $inputTags = ' , , , , , ,, ,,,'; $splitTags = explode(',', $inputTags); $splitTagsWithoutEmpty = []; foreach ($splitTags as $tag) { if (trim($tag) !== '') { $splitTagsWithoutEmpty[] = trim($tag); } } $splitTagsWithoutEmptyAndDuplicate = array_unique($splitTagsWithoutEmpty); ...? ....?

Slide 9

Slide 9 text

Copyright© M&A PHP 9 array_unique( array_map( fn(string $s) => trim($s), array_filter( explode(',', ' , , , , , ,,, ,,'), fn(string $s) => trim($s) !== '' ) ) ); ...😇 😇 😇

Slide 10

Slide 10 text

Copyright© M&A 10 🥺🥺🥺

Slide 11

Slide 11 text

Copyright© M&A 11

Slide 12

Slide 12 text

Copyright© M&A 12

Slide 13

Slide 13 text

Copyright© M&A 13

Slide 14

Slide 14 text

Copyright© M&A 14 extension (nikic/scalar_objects) - ... - PHP

Slide 15

Slide 15 text

Copyright© M&A 15 RFCs PHP RFC: Autoboxing https://wiki.php.net/rfc/autoboxing PHP RFC: Class-like Primitive Types https://wiki.php.net/rfc/class-like_primitive_types ...

Slide 16

Slide 16 text

Copyright© M&A 16 ...🥺🥺

Slide 17

Slide 17 text

Copyright© M&A 17 ...

Slide 18

Slide 18 text

Copyright© M&A 18 💡💡💡💡

Slide 19

Slide 19 text

Copyright© M&A 19

Slide 20

Slide 20 text

Copyright© M&A 20 ... tumugin/stannum PHP 7 . 4 ( array) float/double integer string Sn => Stannum( )

Slide 21

Slide 21 text

Copyright© M&A 21 SnString::byString(' , , , , , ,, ,,,') ->split(',') ->filter(fn(SnString $s) => !$s->trim()->isEmpty()) ->map(fn(SnString $s) => $s->trim()) ->distinct() ->toSnStringList() ->toStringArray(); ... PHP

Slide 22

Slide 22 text

Copyright© M&A 22 PHP ...?

Slide 23

Slide 23 text

Copyright© M&A ... foreach ...? 23 $sushiList = SnStringList::byStringArray([ ' ', ' ', ' ', ' ', ' ', ]); foreach ($sushiList as $sushi) { // something... }

Slide 24

Slide 24 text

Copyright© M&A __toString() ...? 24 $wantToEatSushi = SnString::byString( ' ' ); return "{$wantToEatSushi} "; =>

Slide 25

Slide 25 text

Copyright© M&A 25

Slide 26

Slide 26 text

Copyright© M&A 26 composer require tumugin/stannum