Composer - Công cụ tuyệt vời dành cho PHP

Trước khi Composer ra đời, chúng ta thường khó chịu với hàng tá các thư viện của bên thứ ba cần phải quản lý, rất khó khăn để cập nhật và còn lại các khâu cài đặt lằng quằng. Đó là quá khứ thôi, sự ra đời của Composer đã làm thay đổi hoàn toàn mọi thứ rồi. Trong bài viết này chúng ta sẽ tìm hiểu về ...

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

Cài đặt server/VPS để chạy được cả PHP và Rails

Mục đích: để tận dụng tối đa server, như mình thì là để đỡ tốn tiền :)) Mình chỉ định thuê 1 cái VPS, nhưng vừa muốn nó có thể host được 2 cái blog wordpress của mình. Bên cạnh đó cũng muốn nó có thể chạy được app Rails của mình nữa. Kết quả mong muốn: sau khi setup, các app sẽ chạy ngon như ...

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

Quản lí các thư viện PHP với Composer

Update: các bạn có thể dùng prestissimo để tăng tốc độ cài đặt cho Composer (Parallel Composer) Gõ dòng lệnh này vào: composer global require hirak/prestissimo credit: @VuNhatMinh Vài năm trước, nếu bạn có biết đến PHP, chắc hẳn bạn sẽ phải viết lại một mớ code cho các tác vụ cơ bản ...

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

[Quán cơm bình dân] Thực đơn số 1: Cơm bình dân Dependency Injection - Phần 1

Cuối tuần mình có thư giãn bằng cách đọc hiểu và ứng dụng một chút về dependency injection . Cảm thấy khá thấm nên muốn chia sẻ cho các bạn về những gì mình nắm được, chúng ta có thể trao đổi và thảo luận. Mình cũng nảy ra ý tưởng sẽ viết các log có tính chất bình dân hóa về tin học, các kỹ ...

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

Manage your development environment with Vagrant + Cheft

Sử dụng máy ảo Vagrant cho môi trường development trong team đã thành một “quy luật bất thành văn” nhờ sự hiểu quả, thuận tiện và đồng nhất mà Vagrant mang lại. Đồng nhất OS cho việc development, đa dạng sử dụng trên nhiều OS khác nhau là điểm mạnh của Vagrant. Và sự kết hợp với ...

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

Laravel 5.1 - bản nâng cấp ấn tượng

Laravel vừa thông báo nâng cấp bản v5.1, lần đầu tiên trong lịch sử cung cấp chính sách hỗ trợ dài hạn (long-time support) với người dùng. Chúng ta cũng cùng nhìn lại những tính năng mới nổi bật lần này Kể từ khi ra đời năm 2011, Laravel luôn luôn đi theo "chân ngôn" release early, ...

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

Check nguồn truy cập dựa trên IP nhà mạng

Check nguồn truy cập dựa trên IP nhà mạng. Trong 1 số ứng dụng website cần detect người dùng truy cập từ mạng (di động) nào. Có nhiều cách để detect được. Thông thường nếu làm việc trực tiếp với nhà mạng thì chỉ cần lấy Params Header là xong. Nhưng vấn đề là không có thì thì có check được không? ...

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

Cấu trúc thư mục theme wordpress

Để bắt đầu làm thêm của riêng bạn thì ban đầu bạn phải có một theme trắng ( Blank theme ) để bắt đầu Theme trắng là gồm có các thư mục và file cơ bản của theme WordPress. Bạn có thể vào trang http://underscores.me/ . Đầu tiên bạn vào trang http://underscores.me/ . Sau đó bạn ghi tên mà ...

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

Laravel blade stacks

Laravel có một tính năng rất hay dành cho blade template đó là đẩy các đoạn scripts hay style vào một khối nào đó trên layout một cách dễ dàng, ví dụ như: @push('scripts') <script src="/example.js"></script> @endpush Bạn có thể dùng đoạn mã đó nhiều lần và mỗi lần như vậy nó ...

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

Tự động thêm CSRF Token vào mọi truy vấn Ajax trong CodeIgniter

Trong CodeIgniter, khi bạn thiết lập cấu hình bật bảo vệ CSRF (Cross Site Request Forgery) trong config.php $config['csrf_protection'] = TRUE; thì mọi truy vấn từ client tới server đều được kiểm tra xem có chứa token hay không. Khi làm việc với các truy vấn ajax thì bạn sẽ phải thêm tham số ...

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

Bảo mật hơn trong tải file

Tải trên tiêu đề bài viết là tải lên lẫn tải xuống . Trong đó sẽ nói ra một số các phòng trách được lỗi đã nói trong bài viết Khai thác lỗ hổng của chức năng download file. Mình sẽ trình bày theo các phần như sau: Phạm vi máy chủ. Phạm vi mã nguồn. Phạm vi máy chủ Có hai vấn đề ...

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

Cách download CSV trong framework Fuelphp

Download CSV cho framework Fuelphp http://fuelphp.com/ Tạo file app/classes/format.php <?php // app/classes/format.php を作成 class Format extends FuelCoreFormat { /** * CSV出力をSJIS-WINで返す * @access public * @param mixed $data * @return ...

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

Trim space fullsize và halfsize bằng Regex trong PHP

Hàm số trim space fullsize và halfsize trong PHP /** * Remove space fullsize * * @param string $str string before remove * @return string after removed */ public static function mb_trim($str, $chars = 's ') { $str = preg_replace("/^[$chars]+/u", ', $str); $str = preg_replace("/[$chars] ...

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

99-bottles-of-beer

The song, and the home page 99-bottles-of-beer cũng từng là đề bài của code golf và phpgolf. Mission của chúng ta là code 1 đoạn PHP snippet print lyric của bài hát mà dung lượng đoạn code là nhỏ nhất. Logic thật đơn giản phải không :D 99 bottles of beer on the wall, 99 bottles of beer. Take ...

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

Thay đổi thư mục Public trong laravel framework

Trong quá trình làm việc với laravel, đôi khi sẽ có thay đổi chút về thư mục public trong laravel. Cụ thể như khi chạy nó trên các shared hosting thường là chỉ có thư mục public_html hoặc một số qui định bắt buộc ở các môi trường khác nhau mà tên thư mục này sẽ đổi theo, và trong bài này mình sẽ ...

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

ServiceManager trong ZF2

Service Manager là một Design Pattern quan trọng được đưa vào trong ZF2, Service Manager sẽ trả về cho bạn một đối tượng được đăng ký trong ứng dụng. Service Manager cung cấp rất nhiều cách để bạn đăng ký một service. 1. Factory 1.1 Sử dụng Anonymous Function Với các bạn đã làm quen ...

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

Mã mô phỏng lỗ hổng CVE-2015-4024

Như đã mô tả trong bài viết trước, CVE-2015-4024 là một lỗ hổng nghiệm trọng của hầu hết các phiên bản PHP và mới chỉ được vá gần đây. Trong báo cáo bug thì người phát hiện (một nhà nghiên cứu an ninh ở Baidu Trung Quốc) đã tái hiện tình huống và phân tích cụ thể, tuy nhiên chưa đưa ra đoạn mã mô ...

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

7 bước làm trang web bán hàng ( phần 1 )

7 bước làm trang web bán hàng ( phần 1 ) Với wordpress , thì việc làm 1 site bán hàng thì plugin woocommerce là một lựa chọn khá là hợp lý. Nhưng mà đối với nhu cầu của chúng ta là chỉ để show sản phẩm, và đặt hàng đơn giản thì plugin lại quá cồng kềnh, vì nó có nhiều chức năng mà ta không ...

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

Late static binding trong PHP

Trong PHP 5.3 ngoài các tính năng mới như namespace, closure được giới thiệu thì còn một tính năng nữa ít được chú ý hơn (ít nhất là mình nhận thấy vậy) đó là late static binding. Thì đầu tiên chúng ta cần phải biết late static binding là gì? Cái này mình cũng không biết giải thích sao nữa. Thôi ...

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

Bước đầu với Lumen

Để sử dụng Laravel hay Lumen thì trước hết phải có composer . Bạn có thể cài đặt cả composer và lumen như các câu lệnh dưới đây. # Cài đặt composer curl -sS https://getcomposer.org/installer | php # Lấy file composer.phar về thư mục hiện tại sudo mv composer.phar /usr/local/bin/compo ...

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