serenata/serenata

Free and open source server providing code assistance for PHP

Fund package maintenance!
Liberapay
Paypal
Other

Installs: 12 555

Dependents: 0

Suggesters: 0

Security: 0

Stars: 63

Forks: 19


README

Serenata

Serenata

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

Serenata is a gratis, libre and open source server that performs static analysis on PHP codebases to provide code assistance, such as autocompletion, linting, code navigation and tooltips. It achieves its goal by speaking the language server protocol over sockets with its clients.

Serenata was previously known as "PHP Integrator".

Please see the wiki as well as the website, which contain more information for users, both developers looking to implement clients as well as programmers using the server via editors and IDEs.

Installation

Stable

PHAR (recommended)

Download the latest stable PHAR for your PHP version from the releases page.

Composer

composer create-project "serenata/serenata" serenata --prefer-dist --no-dev

Unstable

You can find the latest unstable builds as PHAR by downloading the artifacts of the latest pipelines or simply install latest master through Composer or by pulling from Git.

Running

Most users will simply want to run Serenata through their favorite editor or IDE. See the website for a list of available clients and how to install them.

If you are writing a new client, please read the following sections.

PHAR

php -d memory_limit=1024M distribution-8.x.phar --uri=tcp://127.0.0.1:11111

Where x is the PHP version you downloaded the PHAR for.

Composer

php -d memory_limit=1024M <Serenata folder>/bin/console --uri=tcp://127.0.0.1:11111

Command Line Arguments

Port

You can select any port you desire, as long as it is not in use on your system.

Host

127.0.0.1 will run on localhost, which means the server will only be reachable from your local machine. This is usually what you want.

You can use other IP addresses such as 0.0.0.0 to make the server reachable across the network or inside a (e.g. Docker) container. (The usual security lecture applies here, as anyone in the network can then connect to the server and request information about your codebase.)

Performance

See this section of the wiki.

Use In Other Projects

If you want to make the server part of your (existing) project and use the classes contained inside it for your own purposes:

composer require "serenata/serenata"

Note that the server was designed primarily as an application and not as a library. However, it is still very much possible to instantiate the classes you need yourself.

You may also be interested in other libraries that are part of the Serenata suite. In the future, more code may be split from the server into proper, separate libraries.

Contributing

As this project is inherently large in scope, there is a lot of potential and a lot of areas to work in, so contributions are most welcome! Take a look at our contribution guide.

AGPLv3 Logo