docs/sdks/languages/php.mdx
If you're working with PHP, the official Infisical PHP SDK package is the easiest way to fetch and work with secrets for your application.
composer require infisical/php-sdk
<?php
use Infisical\SDK\InfisicalSDK;
$sdk = new InfisicalSDK('https://app.infisical.com');
// Authenticate with Infisical
$response = $sdk->auth()->universalAuth()->login(
"your-machine-identity-client-id",
"your-machine-identity-client-secret"
);
// List secrets
$params = new \Infisical\SDK\Models\ListSecretsParameters(
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$secrets = $sdk->secrets()->list($params);
echo "Fetched secrets: " . count($secrets) . "\n";
The SDK methods are organized into the following high-level categories:
auth: Handles authentication methods.secrets: Manages CRUD operations for secrets.AuthThe auth component provides methods for authentication:
Authenticating
$response = $sdk->auth()->universal_auth()->login(
"your-machine-identity-client-id",
"your-machine-identity-client-secret"
);
Parameters:
clientId (string): The client ID of your Machine Identity.clientSecret (string): The client secret of your Machine Identity.SecretsThis sub-class handles operations related to secrets:
use Infisical\SDK\Models\ListSecretsParameters;
$params = new ListSecretsParameters(
environment: "dev",
secretPath: "/",
projectId: "your-project-id",
tagSlugs: ["tag1", "tag2"], // Optional
recursive: true, // Optional
expandSecretReferences: true, // Optional
attachToProcessEnv: false, // Optional
skipUniqueValidation: false // Optional
);
$secrets = $sdk->secrets()->list($params);
Parameters:
environment (string): The environment in which to list secrets (e.g., "dev").projectId (string): The ID of your project.secretPath (string, optional): The path to the secrets.tagSlugs (array, optional): Tags to filter secrets.recursive (bool, optional): Whether to list secrets recursively.expandSecretReferences (bool, optional): Whether to expand secret references.attachToProcessEnv (bool, optional): Whether to attach secrets to process environment variables.skipUniqueValidation (bool, optional): Whether to skip unique validation.Returns:
Secret[]: An array of secret objects.use Infisical\SDK\Models\CreateSecretParameters;
$params = new CreateSecretParameters(
secretKey: "SECRET_NAME",
secretValue: "SECRET_VALUE",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$createdSecret = $sdk->secrets()->create($params);
Parameters:
secretKey (string): The name of the secret to create.secretValue (string): The value of the secret.environment (string): The environment in which to create the secret.projectId (string): The ID of your project.secretPath (string, optional): The path to the secret.Returns:
Secret: The created secret object.use Infisical\SDK\Models\GetSecretParameters;
$params = new GetSecretParameters(
secretKey: "SECRET_NAME",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$secret = $sdk->secrets()->get($params);
Parameters:
secretKey (string): The name of the secret to retrieve.environment (string): The environment in which to retrieve the secret.projectId (string): The ID of your project.secretPath (string, optional): The path to the secret.Returns:
Secret: The retrieved secret object.use Infisical\SDK\Models\UpdateSecretParameters;
$params = new UpdateSecretParameters(
secretKey: "SECRET_NAME",
newSecretValue: "UPDATED_SECRET_VALUE",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$updatedSecret = $sdk->secrets()->update($params);
Parameters:
secretKey (string): The name of the secret to update.newSecretValue (string): The new value of the secret.environment (string): The environment in which to update the secret.projectId (string): The ID of your project.secretPath (string, optional): The path to the secret.Returns:
Secret: The updated secret object.use Infisical\SDK\Models\DeleteSecretParameters;
$params = new DeleteSecretParameters(
secretKey: "SECRET_NAME",
environment: "dev",
secretPath: "/",
projectId: "your-project-id"
);
$deletedSecret = $sdk->secrets()->delete($params);
Parameters:
secretKey (string): The name of the secret to delete.environment (string): The environment in which to delete the secret.projectId (string): The ID of your project.secretPath (string, optional): The path to the secret.Returns:
Secret: The deleted secret object.