Sử dụng phinx để thực hiện migration trong PHP

Migration là gì Migration là một tính năng được "vay mượn" từ Rails - Ruby framework, rất hữu dụng khi chúng ta thay đổi database (thường là MySQL) và muốn quản lý version của những lần thay đổi đó. Thay đổi có thể là thêm bảng, thêm cột vào bảng hay thay đổi các cột trong cùng một bảng. Nếu các ...

Tác giả: Bùi Văn Nam viết 20:48 ngày 11/08/2018

Bảo mật web với wordpress

Vấn đề bảo mật website nói chung và bảo mật website wordpress là một vấn đề rất được quan tâm. Vì có rất nhiều hacker muốn phá web của bạn. Nhiều khi có lý do chẳng hạn như bạn là đối thủ, hay một nguyên nhân nào đó, nhưng cũng nhiều khi chẳng có mục đích gì, chỉ là thích. Hôm nay sẽ nói về vấn ...

Tác giả: Bùi Văn Nam viết 20:47 ngày 11/08/2018

Chuỗi regex check toàn bộ ký tự full size

Regex kiểm tra chuỗi nhập vào có chứa toàn bộ ký tự full size không Trả về true khi $value chứa toàn bộ ký tự full size preg_match('/^[^ -~。-゚x00-x1f ]+$/u', $value);

Tác giả: Bùi Văn Nam viết 20:47 ngày 11/08/2018

Ứng dụng của Reflection trong PHPUnit

Reflection đã được trình bày ở bài viết trước về Reverse Engineering trong PHP. Ở đây mình nhắc lại một chút. Reflection là một bộ API được cung cấp từ PHP5 trở đi, rất hữu dụng cho cho developer khi muốn phân tích source code trong trường hợp document không đầy đủ. Ở bài viết này mình sẽ ...

Tác giả: Tạ Quốc Bảo viết 20:47 ngày 11/08/2018

Cài đặt redis và phpredis trên Ubuntu

Update thư viện: sudo apt-get update Cài trình biên dịch (nếu chưa có) sudo apt-get install build-essential Cài tcl sudo apt-get install tcl8.5 Download bản redis mới nhất wget http://download.redis.io/releases/redis-stable.tar.gz Giải nén và di chuyển tới thư mục ...

Tác giả: Tạ Quốc Bảo viết 20:47 ngày 11/08/2018

Reflection và Reverse Engineering trong PHP

Giới thiệu Reflection class trong PHP Kể từ PHP 5 trở đi, Programmer PHP đã có bộ API Reflection rất hữu dụng để reverse-engineering các class, interfaces, function hay các extension. Bài viết này sẽ giới thiệu tính năng, ý nghĩa và ứng dụng của Reflection trong PHP. Thế nào là ...

Tác giả: Trịnh Tiến Mạnh viết 20:46 ngày 11/08/2018

[Nghịch ngợm] Lấy link download 320kbps / lossless từ Mp3 Zing

Một link bài hát / video từ mp3.zing.vn Cũng vì dạo này mình hơi rảnh rỗi với có một chút phiền phức khi đang thưởng thức nhạc lossless / 320kbps ở Zing mà hết VIP, nên ngồi nghịch một chút xem có cách nào lấy được link download mà không cần VIP hay không và cuối cùng thì cũng đã thành công. ...

Tác giả: Tạ Quốc Bảo viết 20:46 ngày 11/08/2018

PHP trait kể từ PHP 5.4

Kể từ PHP 5.4, ta đã có thể dùng PHP Trait. Mình vẫn hay dùng PHP Trait để bắt buộc các lớp trờ thành singleton như thế này <?php trait Singleton { private function __construct() {} private function __clone() {} private function __wakeup() {} public static function ...

Tác giả: Tạ Quốc Bảo viết 20:46 ngày 11/08/2018

Thêm Editor vào customize wordpress

. Việc thêm editor vào cusomter giúp cho theme của bạn linh động hơn rất nhiều. Mình đang làm một theme mà trên header của mình có phần tiêu đề cho phép người dùng nhập vào. Để có linh động và ứng dụng được nhiều, thay vì chọn textarea, input ( vì nó tính cứng nhắc ) nên mình đã chọn ...

Tác giả: Trịnh Tiến Mạnh viết 20:46 ngày 11/08/2018

Kết nối MySql trong PHP

a. Giới thiệu: Mysql cải tiến hay còn gọi là Mysqli là một trong những trình quản lý cơ sở dữ liệu thông dụng nhất từ phiên bản php5.0 trở đi. Các Developer khuyến khích sử dụng cơ sở dữ liệu mới này. b. Kết nối $conn = mysqli_connect('localhost', $username, $password, $database_name or ...

Tác giả: Trịnh Tiến Mạnh viết 20:45 ngày 11/08/2018

Cách nối associative array (mảng liên tưởng) trong PHP

Associative array là object sẽ gặp rất nhiều trong quá trình làm PHP. Ở bài này mình sẽ tổng hợp các cách nối associative array phổ biến và sự khác nhau giữa các cách nối đó array_merge array_merge là hàm có sẵn của PHP để nối 2 array với nhau $first = array('key1' => ...

Tác giả: Bùi Văn Nam viết 20:45 ngày 11/08/2018

Hãy bảo vệ sức khỏe, đôi mắt của bạn bằng tool nhỏ sau

Giới thiệu Hằng ngày bạn luôn đối mặt với những project đòi hỏi sự tập trung cao độ, hoặc những lúc mãi mê ngồi trước màn hình quá lâu. Tất cả sẽ dẫn đến một số bệnh về mắt và cột sống. Để có một sức khỏe tốt và một đôi mắt tốt, bạn cần nghỉ ngơi đều đặn theo một chu kí nhất định để có thời ...

Tác giả: Bùi Văn Nam viết 20:45 ngày 11/08/2018

Inversion of Control and Dependency Injection

Preface Trước khi đọc bài này, tôi có 1 vài recommend cho độc giả :) Bạn nên đọc trước bài viết về Builder Pattern trong Java cũng trong blog ktmt, sẽ có 1 cái nhìn tổng quát và hình dung dễ dàng hơn về ứng dụng của các pattern trong programming. Có hàng tá bài viết về Inversion Of ...

Tác giả: Trịnh Tiến Mạnh viết 20:45 ngày 11/08/2018

Convert ký tự kanji tiếng Nhật sang hiragana trong PHP

Khi làm việc với khách hàng Nhật Bản, thì không ít lần các bạn cần phải convert ký tự kanji sang hiragana. Hôm nay, tôi xin trình bày một cách (trong nhiều cách) để convert ký tự kanji sang hiragana Đầu tiên, các bạn down load thư viện igo-php Sau đó sử dụng đoạn code sau require_once ...

Tác giả: Tạ Quốc Bảo viết 20:44 ngày 11/08/2018

Lumen - microframework của Laravel

Giới thiệu Laravel và Lumen Laravel là một framework hiện đại của PHP, mang rất nhiều những ưu điểm các các framework hiện đại từ các ngôn ngữ khác như Rails / Spring, có thể coi là framework dễ dùng và thích dùng nhất đối với PHP trong thời điểm hiện tại. Ra đời tháng 4 năm 2011 bởi Taylor ...

Tác giả: Bùi Văn Nam viết 20:44 ngày 11/08/2018

Viết game flappy bird bằng HTML và JavaScript (P.1)

Hôm nay chúng ta sẽ viết một game tương tự flappy bird bằng HTML và JavaScript một cách đơn giản, bài viết không chỉ giúp bạn nâng cao khả năng lập tình HTML JS mà còn tạo ra 1 sản phẩm thú vị cho nên các bạn chịu khó theo dõi nha. Các bạn xem demo sản phẩm khi chúng ta hoàn thành trên ...

Tác giả: Tạ Quốc Bảo viết 20:44 ngày 11/08/2018

Sử dụng ENV variables thay vì hardcode các thông tin bảo mật cho WordPress

Thấm thoát cũng đã được 10 năm kể từ khi tôi đụng vào WordPress. Hôm qua tôi được một người bạn nhờ thay đổi một số CSS cho trang WordPress của họ. Tôi khá là ngạc nhiên sau từng đấy năm WordPress vẫn khuyến khích người dùng hardcode các thông tin bảo mật của DB vào trong file wp-config.php. Điều ...

Tác giả: Hoàng Hải Đăng viết 20:44 ngày 11/08/2018

Save file trùng tên nhau thì gán thêm số thứ tự kèm theo

Trong PHP, nếu bạn muốn save file trùng tên nhau thì gán thêm số thứ tự kèm theo, ví dụ như test_1.txt thì hãy tham khảo hướng dẫn sau đây. Tuy nhiên, khi ghi file [test.txt] nhiều lần, có thể đã tồn tại [test_1.txt], [test_2.txt]…do đó, ta phải đánh số tăng dần. Để giải quyết vấn đề ...

Tác giả: Hoàng Hải Đăng viết 20:43 ngày 11/08/2018

Cấu hình nginx cơ bản - Phần 2

Như đã hứa trong phần 1, trong phần này, tôi sẽ tập trung viết về cấu hình vhost cho nginx và cấu hình php-fpm để vhost xử lý được file php. Vhost viết tắt của virtual host là kỹ thuật cho phép nhiều website có thể chia sẻ chung một IP. Thuật ngữ này bắt nguồn từ apache. Tác giả nginx thì lại ...

Tác giả: Trịnh Tiến Mạnh viết 20:43 ngày 11/08/2018

Xem nhanh code của Npm package/PHP Composer với OpenIt.io

Full disclosure: Mình là người viết ra trang https://openit.io Vì là một ngôn ngữ không có typing nên khi viết Javascript hay là PHP mình phải thường xuyên xem README cũng như là mã nguồn của những thư viện mình đang dùng để biết chính xác mấy cái biến nhận giá trị gì Quy trình xem thì ...

Tác giả: Trịnh Tiến Mạnh viết 20:43 ngày 11/08/2018