Download the PHP package psx/psx without Composer

On this page you can find all versions of the php package psx/psx. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package psx

About

PSX is an innovative PHP framework dedicated to build fully typed REST APIs.

It helps to improve the API development process by providing the following features:

More information about PSX at phpsx.org.

Installation

To install the framework you can simply install this demo API project.

Getting started

This repository contains already a fully working demo API build with PSX which you can use as a starting point and to better understand how PSX works. In the following we go based on the demo files through the important concepts of PSX.

Controller

A controller is the entrypoint of your app which gets invoked by the framework. A controller is a simple PHP class which contains attributes to make specific methods invokable. In the following example we have a simple controller with a getAll and create method which gets invoked if a GET or POST request arrives at the /population endpoint s.

One key concept of PSX is that the arguments of your exposed controller methods are mapped to values of the incoming HTTP request, at the getAll method the $startIndex and $count parameter are mapped to a query parameter from the HTTP request, at the create method the $payload parameter is mapped to the request body. If you are familiar with Spring or NestJS you already know this approach.

PSX uses the symfony DI container, all controller classes are automatically loaded through auto-wiring. This means you can simply define at the constructor all dependencies which are needed for your controller. Please take a look at the container.php if you want to customize which classes are loaded.

SDK

One of the greatest feature of PSX is that it can automatically generate a client SDK for the API which you have build. To generate the client SDK simply run the following command.

This writes the SDK to the output/ folder. By default, the command generates the TypeScript SDK. Based on the controller defined above PSX would generate the following client SDK.

The client then contains the same schemas which are also defined at the backend but converted to TypeScript. This means you are using exactly the same schema at the backend and frontend. If you change your schema at the backend you can then regenerate the SDK and you will directly see all problems with your new schema. In this sense PSX provides similar features like tRPC but in a language neutral way.

The generate:sdk command accepts as argument a format which defines the type of SDK which is generated. The following list shows some supported formats.

Model

To enable this SDK generation PSX needs to understand the structure of the incoming or outgoing JSON payload. This is done by using DTO models for every argument and return type. PSX contains a model generator which allows you to generate those models based on a TypeSchema specification. Please take a look at the typeschema.json file which contains the models for our demo API. You can generate all models using the following command s.

The command writes all models to the src/Model folder. You can then use those models at the controller classes.

Service

PSX recommends to move your actual business logic into a separate service class. The controller then simply invokes methods from your service. While this is not mandatory it improves your code quality since you can easily use this service also in another context. All classes under the service/ folder are automatically loaded thus you can specify all dependencies through simple constructor injection.

Migrations

PSX uses doctrine migrations which helps to manage your database schema. To generate a new migration you can simply run s.

This would create a new migration file at src/Migrations. You can then model your table schema at this migration file. After this you can run the migrate command to execute all needed database changes s.

Please take a look at the doctrine migrations project for more information how the migration system works.

Table

PSX provides a command which generates table and row classes to interact with your database in a type-safe way. This command should be executed after you have executed all your migrations.

This command then writes all files to the src/Table folder.

Note in general we think that for API development an ORM is not needed, but it would be easy possible to integrate any existing ORM into PSX.

Tests

PSX provides a way to easily build an integration test for every controller endpoint. The following extract shows the test which requests the /population endpoint and simply compares the JSON payload with an existing JSON structure.

Through this you can easily build integration tests for every endpoint. Please take a look at the tests/Controller/PopulationTest.php file to see the complete test case.

Components

Besides the framework PSX is build on various PHP components. These components are independent of the framework and can also be used in another context. The following list contains the most notable packages:


All versions of psx with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
psx/framework Version ^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package psx/psx contains the following files

Loading the files please wait ....