Hướng dẫn phpstorm plugin development - phát triển plugin phpstorm

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.

Nội dung chính ShowShow

  • Sử dụng plugins
  • Material Theme UI
  • Database Tools and SQL
  • Git Integration
  • Sử dụng phím tắt
  • Sử dụng Live Templates
  • Tích hợp PHP Code Sniffer
  • Tích hợp CSDL trong Vagrant
  • Vấn đề với Laravel Facades
  • Vấn đề về hiệu năng của PhpStorm

Sử dụng plugins

Material Theme UI

Database Tools and SQL

Database Tools and SQL

Git Integration

  • Sử dụng phím tắt
  • Sử dụng Live Templates
  • Tích hợp PHP Code Sniffer
  • Tích hợp CSDL trong Vagrant
  • Vấn đề với Laravel Facades
  • Vấn đề về hiệu năng của PhpStorm

Git Integration

Sử dụng phím tắt

Sử dụng Live Templates

Tích hợp PHP Code Sniffer

Sử dụng phím tắt

Sử dụng Live Templates

  • Tích hợp PHP Code Sniffer
  • Tích hợp CSDL trong Vagrant
  • Vấn đề với Laravel Facades
  • Vấn đề về hiệu năng của PhpStorm
  • 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
  • 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

Sử dụng Live Templates

Tích hợp PHP Code Sniffer

public function functionName() {
    //
}

Tích hợp CSDL trong Vagrant

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 Datasource1. Mở cài đặt Datasource1. 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 SSH2. Cấu hình SSH2. Cấu hình SSH
  • Lấy thông tin SSH của Vagrant qua câu lệnh Ctrl+,1 tại thư mục của dự án.
  • Mở cửa sổ cấu hình ở bước 1, chọn tab Ctrl+,2.
  • 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:

    Hướng dẫn phpstorm plugin development - phát triển plugin phpstorm

  • Chọn Ctrl+,3 để 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 database3. Thiết lập cấu hình database3. Thiết lập cấu hình database
  • Chuyển sang tab Ctrl+,4 .
  • Đ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 Ctrl+,3 để 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 Ctrl+,6 -> Ctrl+,7.
  • 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ể.