12/08/2018, 16:45

Tôi đã sử dụng PhpStorm như nào?

Nếu ví một lập trình viên như một người nông dân thì code editor và IDE (Integrated Developement Enviroment) được coi như là cái cuốc, cái máy cày. Để đạt được năng suất làm việc cao nhất có thể, người “nông dân” không những cần những nông cụ tốt mà cần phải biết tận dụng tối đa công ...

Nếu ví một lập trình viên như một người nông dân thì code editor và IDE (Integrated Developement Enviroment) được coi như là cái cuốc, cái máy cày. Để đạt được năng suất làm việc cao nhất có thể, người “nông dân” không những cần những nông cụ tốt mà cần phải biết tận dụng tối đa công dụng của chúng. Tương tự như vậy, mỗi lập trình viên sẽ chọn những công cụ phát triển cho riêng mình và làm việc với chúng hằng ngày. Một trong số đó là PhpStorm – IDE dành cho PHP của hãng Jet Brains. Ở bài viết này, tôi sẽ trình bày về cách tôi đã tận dụng công cụ này như nào trong công việc lập trình thường ngày của mình.

Sử dụng plugins

Material Theme UI

Giao diện có lẽ là thứ mà sẽ “đập vào mắt ta” đầu tiên khi sử dụng bất cứ công cụ nào. Nó như “cái quần, chiếc áo”. Chính vì vậy, mỗi người lại có một sở thích và nhu cầu khác nhau về giao diện. Bản thân PhpStorm đã có kha khá giao diện và color schema nhưng nếu yêu thích phong cách Material Design thì Material Theme UI là plugin không thể thiếu. Cách cài đặt và sử dụng plugin có thể tham khảo tại đây: https://github.com/ChrisRM/material-theme-jetbrains

Database Tools and SQL

Một plugin tích hợp sẵn của PhpStorm cho phép xử lý dữ liệu trong cơ sở dữ liệu (CSDL) quan hệ và hỗ trợ ngôn ngữ SQL. Các hệ quản trị CSDL được hỗ trợ: MySQL, PostgreSQL, Microsoft SQL Server, Oracle, AWS Redshift, Sybase, DB2, SQLite, HyperSQL, Apache Derby, H2. Plugin cung cấp một giao diện xử lý trực quan với nhiều tính năng hữu ích:

  • Tìm kiếm và sửa dữ liệu trực tiếp trên giao diện đồ họa
  • Tự hoàn thiện câu truy vấn
  • Phân tích và sửa lỗi nhanh
  • Import/export file
  • Hỗ trợ sinh biểu đồ
  • ... Tham khảo thêm tại đây (https://www.jetbrains.com/datagrip/features/)

Git Integration

Một plugin tích hợp sẵn khác cho phép thao tác với Git. Tính năng nổi bật và đáng sử dụng nhất có lẽ là Resolve Conflicts, giúp xử lý xung đột khi merge hay rebase nhánh một cách trực quan. Sau khi kích hoạt plugin, các tính năng của plugin sẽ được hiển thị ở mục Git trong tab VCS.

Terminal

Nếu không muốn chuyển nhiều cửa sổ khi là việc với Command Line (Windows) hay Bash (Ubuntu), Terminal là plugin tích hợp hữu ích khi cho phép người dùng thao tác với terminal của hệ thống ngay trên giao diện cửa sổ của PhpStorm. Plugin được kích hoạt sẵn khi cài đặt PhpStorm và có thể được sử dụng ở tab Terminal góc bên trái dưới cùng. Ngoài những plugins trên, tôi cũng sử dụng một số plugins khác dựa trên nhu cầu của mỗi dự án như: Laravel, Blade Support, Vagrant, Nodejs,… Việc sử dụng plugin nên được cân nhắc để PhpStorm đạt hiệu năng cao nhất.

Sử dụng phím tắt

Sử dụng phím tắt là một trong những điều tất yếu dù làm việc với code editor hay IDE. Từ những phím tắt đơn giản như copy-paste đến những phím tắt phức tạp hơn. Hệ thống phím tắt của PhpStorm khá phong phú và sẽ khác nhau trên từng môi trường hệ thống. Tuy nhiên, hoàn toàn có thể cá nhân hóa hệ thống này theo thói quen và nhu cầu của mỗi người. Các phím tắt hữu ích mà tôi thường sử dụng (Windows và Ubunu):

  • Ctrl+, : mở cài đặt của PhpStorm (Settings)
  • Ctrl+P: tìm kiếm file theo tên. (File)
  • Shift+Shift: tìm kiếm theo từ khóa.
  • Ctrl+E: hiển thị những file mở gần đây. (Recent Files)
  • Ctrl+J: hiển thị tên các hàm trong file. (File Structure)
  • Ctrl+D: nhân đôi dòng hiện tại. (Duplicate Line or Selection)
  • Ctr+Shift+D: hiển thị nhiều con trỏ cùng lúc trên những từ khóa giống nhau (Add Selection for Next Occurrence)
  • ... Một số phím tắt trong số trên đã được tùy biến so với phím tắt mặc định của PhpStorm. Việc tùy biến này có thể được thực hiện ở mục Keymap trong phần Settings.

Sử dụng Live Templates

Một tính năng khác của PhpStorm hỗ trợ việc viết code một cách nhanh chóng, tránh việc gõ đi gõ lại cùng một dòng hay một đoạn code giống hoặc tương tự nhau về mặt cấu trúc. Ví dụ như đoạn code sau:

public function functionName() {
    //
}

Trên đây là cấu trúc một hàm public trong PHP. Việc viết đi viết lại cấu trúc này mỗi khi định nghĩa một hàm khá mất thời gian và công sức. Nhờ vào Live Templates, đoạn code trên có thể được sinh ra bằng cú pháp pubf+Tab. Đây là một trong nhiều template có sẵn của PhpStorm hỗ trợ ngôn ngữ PHP. Ngoài ra có rất nhiều template khác ứng với từng ngôn ngữ và định dạng file. Bộ Live Templates cũng có thể được tùy biến và thêm mới tùy vào nhu cầu sử dụng. Mặc định để sử dụng một template nào đó, cú pháp sẽ là tên viết tắt của template + phím Tab.

Tích hợp PHP Code Sniffer

Ngoài những cảnh báo về lỗi cú pháp thông thường, PhpStorm có thể được tích hợp thêm bộ kiểm tra code convention PHP Code Sniffer như trong cài đặt sau (https://confluence.jetbrains.com/display/PhpStorm/PHP+Code+Sniffer+in+PhpStorm)

Tích hợp CSDL trong Vagrant

Khi thao tác với CSDL trên máy ảo Vagrant, việc phải truy vấn thông qua màn hình console khá vất vả và không trực quan. Những bước cài đặt sau đây sẽ giúp chúng ta tích hợp và xử lý CSDL trong Vagrant ngay trên cửa sổ PhpStorm:

  • Điều kiện: Đã kích hoạt plugin Database Tools and SQL
  • Các bước cài đặt: 1. Mở cài đặt Datasource
  • Chọn View -> Tool Windows -> Database
  • Click chọn vào tab Database góc ngoài cùng bên phải. Chọn New -> Datasource. Lựa chọn hệ quản trị CSDL muốn cài đặt. Ở hướng dẫn này là MySQL 2. Cấu hình SSH
  • Lấy thông tin SSH của Vagrant qua câu lệnh vagrant ssh-config tại thư mục của dự án.
  • Mở cửa sổ cấu hình ở bước 1, chọn tab SSH/SSL.
  • Tích chọn Use SSH tunnel
  • Điền các thông số dựa trên config vừa lấy như hình dưới đây:
  • Chọn Test Connection để kiểm tra việc kết nối có thành công hay không. 3. Thiết lập cấu hình database
  • Chuyển sang tab General .
  • Điền các thông số về xác thực, host, port tương ứng với database của dự án.
  • Click Test Connection để kiểm tra. Tham khảo thêm tại: http://blog.theodo.fr/2017/03/how-to-manipulate-the-mysql-database-of-your-vagrant-from-PhpStorm/

Vấn đề với Laravel Facades

Đối với những dự án Laravel, PhpStorm không nhận dạng được Facades. Package sau đây sẽ giải quyết được vấn đề này : Laravel 5 IDE Helper Generator (https://github.com/barryvdh/laravel-ide-helper)

Vấn đề về hiệu năng của PhpStorm

PhpStorm là một IDE lý tưởng cho lập trình PHP với nhiều công cụ hữu ích. Tuy nhiên, chính vì sự đa năng này mà khiến nó trở nên nặng nề và chậm chạp. Một số cách dưới đây có thể giúp tăng quá trình khởi động và index file khi sử dụng PhpStorm:

  • Vô hiệu hóa hoặc xóa bỏ những plugin không cần thiết. Plugin là một phần quan trọng của PhpStorm. Tuy nhiên, không phải plugin nào cũng quan trọng đối với từng dự án cụ thể. Việc tạm ngưng hay xóa bỏ những plugin không liên quan đến dự án sẽ giúp tăng quá trình khởi động và sử dụng IDE.
  • Exclude những thư mục chứa file biên dịch, binary hay thư viện như node_modules, vendor, . Việc PhpStorm index những file ở các thư mục này thường là không cần thiết. PhpStorm hay bất cứ IDE nào đều thực hiện quá trình indexing file (đánh chỉ mục) khi khởi động để nhận dạng mã nguồn cho việc tra cứu và phân tích. Quá trình này chiếm phần lớn thời gian khởi động của IDE. Chính vì vậy, việc exclude (loại bỏ) những file hay thư mục kể trên khỏi quá trình indexing sẽ gia tăng đáng kể hiệu năng của IDE. Để exclude thư mục, chọn chuột phải vào tên thư mục ở cây thư mục góc bên trái. Chọn Mark Directory as -> Excluded.
  • Cấu hình JVM: PhpStorm chạy trên máy ảo Java (Java Virtual Machine – JVM). Vì vậy, có khá nhiều tùy chọn để điều chỉnh hiệu năng của IDE. Một trong số đó là gia tăng bộ nhớ cho máy ảo thông qua cài đặt ở mục Edit Custom VM Options trên menu Help. Tham khảo thêm các tùy chỉnh khác tại đây (https://www.jetbrains.com/help/PhpStorm/tuning-PhpStorm.html)

Như vậy là tôi đã vừa điểm qua xong một vài nét chính trong việc tối ưu và sử dụng PhpStorm hằng ngày của mình. Có nhiều điều chia sẻ ở trên mang tính cá nhân vì việc sử dụng IDE nào để làm việc hay tận dụng chúng ra làm sao là tùy vào sở thích và thói quen của từng người. Không quan trọng đó là IDE hay chỉ đơn thuần là một code editor. Mà chính là việc sử dụng chúng như thế nào cho hiệu quả để mang lại năng suất làm việc cao nhất có thể.

0