Thời gian vừa rồi tôi được giao nhiệm vụ phỏng vấn kỹ thuật đầu vào PHP developer cho D.A.C Tech Vietnam. Là một người khá kỹ tính nên trước khi phỏng vấn tôi cho ứng viên làm một bài test 100 câu trắc nghiệm bằng tiếng anh, bao gồm kiến thức cơ bản của HTML, CSS, PHPMysql.

Do bài test đã cover kiến thức cơ bản nên khi phỏng vấn tôi chỉ hỏi những câu hỏi mở về PHP Operator, OOP, Composer, Laravel và cuối cùng là Design Patterns (hỏi thôi chứ thực sự bản thân cũng chưa pro về DP lắm :mrgreen: ). Trong đó đặc biệt có một câu hỏi về composer mà tôi cứ đinh ninh rằng ít nhất là vài người sẽ trả lời được. Nhưng sự thật thì… chưa có ai trả lời được một cách trọn vẹn cả:

Giả sử tôi có một dự án PHP thuần, trong dự án chỉ có duy nhất một file index.php. Hãy nêu các bước tích hợp composer vào dự án của tôi.

Câu hỏi trên là cơ bản hay nâng cao? Tôi không biết có sao không?

hệ mặt trời

Các hành tinh trong hệ mặt trời

Trước khi đi vào kỹ thuật, tôi muốn giải thích rằng thước đo sự hiểu biết của một người cũng chỉ là tương đối, hãy thử hỏi một người bất kỳ:

Hệ mặt trời có bao nhiêu hành tinh?

Tôi cam đoan đa số người bạn hỏi sẽ không trả lời được. Thật ra với những người không quan tâm tới thiên văn học thì đúng là chỉ còn cách tra google. Bản thân tôi cũng từng có suy nghĩ sai lầm rằng những thứ đơn giản với mình thì đương nhiên nó cũng đơn giản với người khác.

Bởi tính chất tương đối của câu hỏi được đặt ra, tôi xin để người đọc tự đánh giá nó là căn bản hay nâng cao. Tôi có biết một số người làm việc với Laravel cả năm trời (hoặc hơn) nhưng cũng chẳng biết hay để ý file vendor/autoload.php là cái gì và dùng để làm gì. Hãy yên tâm rằng dù bạn không trả lời được câu hỏi trên thì cũng chả ai đánh giá thấp bạn đâu.

Cách tích hợp composer vào dự án PHP

Lan man đủ rồi, giờ tôi sẽ nêu 3 bước để trả lời câu hỏi trên:

  1. Khởi tạo file composer.json và khai báo các thư viện cần xài
  2. Cài đặt các thư viện đã khai báo
  3. require vendor/autoload.php trong file index.php

Bước 1:

Để tạo composer.json thì cách đơn giản nhất là gõ lệnh:

nên nhớ là bạn phải cd vào thư mục của project đã nhé. Tiếp đó là làm theo guide của Composer config generator và khai báo các thư viện cần xài luôn hoặc thêm thủ công trong composer.json sau cũng được.

Bước 2:

Dùng lệnh:

để cài đặt các thư viện đã khai báo, quá trình này sẽ sinh ra thư mục vendor và file autoload.php.

Bước 3:

Thêm vào đầu file index.php dòng sau:

That’s all.