# SDK de PHP

[transloadit/php-sdk](https://github.com/transloadit/php-sdk)

Nuestro SDK de PHP te permite automatizar la subida de archivos mediante laREST API de Transloadit usando PHP.

Puedes instalarlo mediante Composer.

## Instalación

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```
composer require transloadit/php-sdk

```

Ten a mano el Auth Key & Auth Secret de tu cuenta de Transloadit. Puedes consultar la página de[credenciales de API](/workspaces/credentials/) para obtener estos valores.

## Uso

### 1. Sube una imagen desde tu servidor y cambia su tamaño

Este ejemplo muestra cómo puedes usar el SDK para crear una Assembly en tu servidor.

Toma un archivo de imagen de muestra, lo sube a Transloadit e inicia una tarea para cambiar su tamaño.

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```php
<?php
require 'vendor/autoload.php';

use transloadit\Transloadit;

$transloadit = new Transloadit([
  'key' => 'YOUR_TRANSLOADIT_KEY',
  'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);

$response = $transloadit->createAssembly([
  'files' => ['/PATH/TO/FILE.jpg'],
  'params' => [
    'steps' => [
      'resize' => [
        'robot' => '/image/resize',
        'width' => 200,
        'height' => 100,
      ],
    ],
  ],
]);

// Show the results of the assembly we spawned
echo '<pre>';
print_r($response);
echo '</pre>';

```

### 2. Crea un formulario sencillo de subida para usuarios finales

Este ejemplo te muestra cómo crear un formulario sencillo de subida de Transloadit que redirige de vuelta a tu sitio una vez finalizada la subida.

Cuando el script recibe la solicitud de redirección, se muestra el estado actual de esta Assemblymediante `Transloadit::response()`.

###### Nota

No se garantiza que la Assembly ya haya terminado de ejecutarse cuando se obtenga `$response`. Para ello, debes usar el parámetro `notify_url`.

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```php
<?php
require 'vendor/autoload.php';

use transloadit\Transloadit;

$transloadit = new Transloadit([
  'key' => 'YOUR_TRANSLOADIT_KEY',
  'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);

// Check if this request is a Transloadit redirect_url notification.
// If so fetch the response and output the current assembly status:
$response = Transloadit::response();
if ($response) {
  echo '<h1>Assembly Status:</h1>';
  echo '<pre>';
  print_r($response);
  echo '</pre>';
  exit();
}

// This should work on most environments, but you might have to modify
// this for your particular setup.
$redirectUrl = sprintf('http://%s%s', $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI']);

// Setup a simple file upload form that resizes an image to 200x100px
echo $transloadit->createAssemblyForm([
  'params' => [
    'steps' => [
      'resize' => [
        'robot' => '/image/resize',
        'width' => 200,
        'height' => 100,
      ],
    ],
    'redirect_url' => $redirectUrl,
  ],
]);
?>
<h1>Pick an image to resize</h1>
<input name="example_upload" type="file">
<input type="submit" value="Upload">
</form>

```

### 3. Usa Uppy para subir archivos

Recomendamos usar [Uppy](/es/docs/sdks/uppy.md), nuestra herramienta de subida de archivos de próxima generación para la web.

1. Incluye Uppy en tu página:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```html
<link href="https://releases.transloadit.com/uppy/v3.3.1/uppy.min.css" rel="stylesheet" />
<script src="https://releases.transloadit.com/uppy/v3.3.1/uppy.min.js"></script>

```

1. Inicializa Uppy con el plugin de Transloadit:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```html
<div id="uppy"></div>

<script>
  const uppy = new Uppy.Core()
    .use(Uppy.Dashboard, {
      inline: true,
      target: '#uppy',
    })
    .use(Uppy.Transloadit, {
      params: {
        auth: { key: 'YOUR_TRANSLOADIT_KEY' },
        template_id: 'YOUR_TEMPLATE_ID',
        notify_url: 'https://your-site.com/transloadit_notify.php',
      },
    })
</script>

```

1. Gestiona las notificaciones en tu backend de PHP:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```php
<?php
require 'vendor/autoload.php';

use transloadit\Transloadit;

$transloadit = new Transloadit([
  'key' => 'YOUR_TRANSLOADIT_KEY',
  'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);

$response = Transloadit::response();
if ($response) {
  http_response_code(200);
  echo 'OK';
  return;
}

http_response_code(400);
echo 'Bad Request';

```

### 4. Obtén el Assembly Status JSON

Puedes usar el método `getAssembly` para obtener el estado de la Assembly.

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```php
<?php
require 'vendor/autoload.php';
$assemblyId = 'YOUR_ASSEMBLY_ID';

$transloadit = new Transloadit([
  'key' => 'YOUR_TRANSLOADIT_KEY',
  'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);

$response = $transloadit->getAssembly($assemblyId);

echo '<pre>';
print_r($response);
echo '</pre>';

```

### 5. Crea una Assembly con un Template.

Este ejemplo muestra cómo puedes usar el SDK para crear una Assembly conTemplates.

Debes crear un Template en el panel de tu cuenta de Transloadit y añadir aquí el ID del Template.

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```php
<?php
require 'vendor/autoload.php';

use transloadit\Transloadit;

$transloadit = new Transloadit([
  'key' => 'YOUR_TRANSLOADIT_KEY',
  'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);

$response = $transloadit->createAssembly([
  'files' => ['/PATH/TO/FILE.jpg'],
  'params' => [
    'template_id' => 'YOUR_TEMPLATE_ID',
  ],
]);

// Show the results of the assembly we spawned
echo '<pre>';
print_r($response);
echo '</pre>';

```

### Signature Auth

El SDK de PHP gestiona internamente y de forma predeterminada la Signature Authentication, por lo que no tienes que preocuparte por ello :)

## Ejemplo

Para consultar ejemplos completamente funcionales, revisa[examples/](https://github.com/transloadit/php-sdk/tree/HEAD/examples).

## Documentación

Consulta [GitHub](https://github.com/transloadit/php-sdk) para acceder a la documentación completa.
