php ? (?? and ?:) == (!empty and isset)

Simple, but sometimes we use it in wrong way! $a = ''; echo $a ?: 'a string'; $b = ''; echo $b ?? 'b string'; So: isset ~ ?? !empty ~ ?: More example: $a = ['1' => ['2' => []]]; print($a['1']['2'] ?: 'a string'); // print out s string ~ !empty echo PHP_EOL; $b = ['1' => ['2' => []]]; print($b['1']['2'] ?? 'b string'); // print out Array ~ isset ...

February 13, 2017 · 1 min · longka

ISP - interface segregation principle in SOLID

Interface segregation principle (ISP) - tạm dịch: chả biết dịch sao cho sát nghĩa ??, cái từ segregation dịch ra là tách rời ra. Interface thì khỏi phải giải thích rồi nhỉ :) - anw, let’s move on … Nguyên tắc này được diễn giải theo nguyên bản tiếng anh theo Uncle Bob “Client should not be forced to implement an interface that it doesn’t use” - tức là các lớp con (derived classes) không nên hiện thực những phương thức (method) mà nó không cần dùng đến....

August 11, 2016 · 4 min · longka

Một vài lưu ý khi cài đặt php7 (php-fpm) từ source code trên linux (fedora)

Giả sử bạn muốn cài đặt trên fedora, php7, php-fpm với nginx là proxy hứng request đẩy qua cho php xử lý (thông qua php-fpm). Khi cài đặt từ source code có thể bạn sẽ gặp những vấn đề sau: Thiếu các thư viện khi chạy lệnh ./congigure Chỉ định đường dẫn đến thư mục sẽ cài php mà bạn muốn( hữu ích khi bạn muốn cài nhiều phiên bản php trên môi trường làm việc của bạn)....

March 1, 2016 · 2 min · longka

Single Responsibility trong SOLID Principle

Bài viết này bàn về S trong SOLID principle. Trong bài viết này http://longka.info/blog/2015/10/26/a-note-about-solid-principles-demo-in-symfony2/ , mình nói sơ qua về ý nghĩa của từng nguyên tắc trong SOLID và demo với symfony2. S: Single Responsibility - tức là một class chỉ nên đảm nhận một nhiệm vụ, hoặc một class nếu có một lý do nào đó để thay đổi thì chỉ có một lý do (_ A class should have only one reason to change_ [1])...

January 24, 2016 · 5 min · longka

composer namespace và autoload với psr 4

Mục đích bài viết: Bạn muốn sử dụng namespace va` psr4? namspace là gì: khi lập trình với JAVA hoặc .NET, chúng ta muốn gom những class liên quan đế nhau vào một package hay namespace. psr4 là gì http://www.php-fig.org/psr/psr-4/ - là chuẩn để autoload các classes từ đường dẫn chứa classes cần load tự động (autoload) Vậy autoload là gì? Nhiều người trong chúng ta viết chương trình theo phương pháp hướng đối tượng (OOP) và cứ mỗi class lại viết một file cho nó (theo cách mà JAVA hay ....

January 23, 2016 · 3 min · longka

A diagram to implement realtime server (pubsub model)

A diagram to implement realtime server (pubsub model) [caption id=“attachment_190” align=“aligncenter” width=“300”]realtime app (pubsub model)[/caption] @todo: add more description, demo code...

November 30, 2015 · 1 min · longka