Logo

Serenata

Gratis, libre and open source server providing code assistance for PHP

Serenata is a gratis, libre and open source language server that provides code assistance for PHP. Combine it with any editor supporting language servers to get access to more advanced features when writing PHP code.

Autocompletion

Get relevant suggestions for class members, available functions and constants, local variables and more, enriched with additional information such as deprecation statuses and summaries.

Code Navigation

Travel effortlessly to the relevant location of method definitions, classes, interfaces, and other structural elements in your code base.

Code Lenses

See additional helpful markers, such as properties overriding parent properties or methods implementing interface methods.

Interacting with them will take you to the mentioned element.

Tooltips

View extended documentation at a glance. Think method parameter descriptions, return type descriptions and thrown exceptions.

Refactoring

Quickly perform repetitive and automatable tasks, such as generating getters and setters, generating constructors, overriding parent methods or adding stubs for required interface methods.

Signature Help

What arguments did that function need again? Pop open a tooltip with the expected arguments, with their documentation, to lift the confusion.

Outline (Symbols)

Glance at a bird's-eye view of the code in any file and jump between them quickly.

Linting

Get notified of problems with your code early on to spend less time switching between testing a running version and your code.

See also the support table to see what language server protocol features are supported.

What is it exactly?

Serenata is the standalone server, written in and for PHP that can be combined with editors supporting the language server protocol.

To clear up any confusion above: Serenata itself has no direct relationship to the Atom editor. The php-ide-serenata package for Atom is a so-called "client" in the form of an Atom package that integrates the server into the Atom editor. A similar client can be written for any editor.

Awesome! What do I need?

Atom

   PHP on the host

  1. Install PHP 7.1 or higher
  2. In php.ini, enable the mbstring, xml, libxml, dom, openssl and pdo_sqlite (with SQLite >= 3.7.11) extensions
  3. Open up Atom, install php-ide-serenata and follow the steps

   Docker

  1. Ensure Docker is running
  2. Open up Atom, install php-ide-serenata and follow the steps

Other editors

If your editor already supports the language server protocol, integration should be straightforward. Some successes have already been reported with Visual Studio Code as well as a proprietary editor.

Feel free to drop by with questions if you're looking to integrate it into another editor!

Where can I get more information?

You can also take a look at our wiki.

Where is the code?

The server can be found on GitLab and the Atom client package on GitHub.

Can I support you?

Serenata already sports a few advanced features, such as PhpStorm meta file support and refactoring functionalties and provides a suitable solution for users looking for a free, gratis as well as libre, competitor to existing alternatives. I believe it can become the de facto free and competitive language server for PHP with the support of the community.

At the time of writing I'm the sole maintainer of this large project and work exclusively in my spare time to achieve this goal, so any donation is viewed as an appreciation of my work and a motivator to continue my efforts.

Ways you can sponsor:

If you decide to become a sponsor: thank you!