Publishing to Packagist

Publish your public-facing Fern PHP SDK to the Packagist registry. After following the steps on this page, you’ll have a versioned package published on Packagist.

Versioned package published on Packagist
This guide assumes that you already have an initialized fern folder on your local machine. See Set up the fern folder for more details.

Set up your GitHub integration

  1. Create a new GitHub repository called company-php (or something similar) for your SDK, if you haven’t done so already.

    Your repository must:

    • Have public visibility. You can configure this in your repository’s Settings.
    • Have a composer.json file in your main branch that adheres to Packagist’s requirements. See Packagist’s Getting Started and Naming Conventions documentation.
  2. Install the Fern GitHub App: Select Configure, then scroll down to Repository Access. Select Only select repositories and in the dropdown select the repository for your SDK. Click Save.

Configure generators.yml

1

Run fern add <generator>

Navigate to your generators.yml on your local machine. Your generators.yml lives inside of your fern folder and contains all the configuration for your Fern generators.

Add a new generator to generators.yml:

$fern add fern-php-sdk --group php-sdk

Once the command completes, you’ll see a new group created in your generators.yml:

1groups:
2 php-sdk:
3 generators:
4 - name: fernapi/fern-php-sdk
5 version: 4.23.2
6 output:
7 location: local-file-system
8 path: ../sdks/php
2

Add repository location

PHP publishes via Git repositories, so remove the auto-generated output, location, and path fields. Instead, add the path to your GitHub repository:

1groups:
2 php-sdk:
3 generators:
4 - name: fernapi/fern-php-sdk
5 version: 4.23.2
6 github:
7 repository: your-org/company-php

Set up Packagist publishing authentication

1

Log into Packagist

Log into Packagist or create an account with Packagist.

2

Submit the Repository URL

  1. Click Submit.
  2. Input the full URL of the repository where you generated your PHP SDK, then click Check.
  3. Fix any errors Packagist finds in your repository, then click Submit.
Submit Package Screen in Packagist
3

Configure the GitHub Hook

Once you’ve submitted your URL, you’ll be prompted to set up the GitHub Hook.

  1. In to your repository, go to Settings > Webhooks.
  2. Select “Add webhook”
  3. Set the Payload URL as https://packagist.org/api/github?username=<your.packagist.username>
  4. Set the content type as application/json
  5. Packagist autogenerates API Tokens. To find yours, go to your Profile. Then, add your token to the Secret field.
  6. Set the trigger events as Just the push event
  7. Click “Add Webhook”
GitHub Webhook for Packagist

Release your SDK to Packagist

At this point, you’re ready to regenerate your SDK and publish it on Packagist:

$fern generate --group php-sdk --version <version>

Local machine output will verify that the release is pushed to your repository and tagged with the version you specified. Log back into Packagist, click on your username, and select My packages to see your new release.