AppserverIo\Appserver\Core\Interfaces\ContainerInterface::getTmpDir PHP Method

getTmpDir() public method

Returns the servers tmp directory, append with the passed directory.
public getTmpDir ( string | null $directoryToAppend = null ) : string
$directoryToAppend string | null The directory to append
return string
    public function getTmpDir($directoryToAppend = null);

Usage Example

Example #1
0
 /**
  * Prepares the application with the specific data found in the
  * passed context node.
  *
  * @param \AppserverIo\Appserver\Core\Interfaces\ContainerInterface $container The container instance bind the application to
  * @param \AppserverIo\Appserver\Core\Api\Node\ContextNode          $context   The application configuration
  *
  * @return void
  */
 public function prepare(ContainerInterface $container, ContextNode $context)
 {
     // load the unique application name + the naming directory
     $uniqueName = $this->getUniqueName();
     $namingDirectory = $this->getNamingDirectory();
     // create subdirectories for the application and the logger
     $namingDirectory->createSubdirectory(sprintf('php:global/%s', $uniqueName));
     $namingDirectory->createSubdirectory(sprintf('php:global/log/%s', $uniqueName));
     // create the applications 'env' + 'env/persistence' directory the beans + persistence units will be bound to
     $namingDirectory->createSubdirectory(sprintf('php:env/%s', $uniqueName));
     $namingDirectory->createSubdirectory(sprintf('php:global/%s/env', $uniqueName));
     $namingDirectory->createSubdirectory(sprintf('php:global/%s/env/persistence', $uniqueName));
     // bind the directory containing the applications
     $namingDirectory->bind(sprintf('php:env/%s/appBase', $uniqueName), $container->getAppBase());
     // prepare the application specific directories
     $webappPath = sprintf('%s/%s', $this->getAppBase(), $this->getName());
     $tmpDirectory = sprintf('%s/%s', $container->getTmpDir(), $this->getName());
     $cacheDirectory = sprintf('%s/%s', $tmpDirectory, ltrim($context->getParam(DirectoryKeys::CACHE), '/'));
     $sessionDirectory = sprintf('%s/%s', $tmpDirectory, ltrim($context->getParam(DirectoryKeys::SESSION), '/'));
     // prepare the application specific environment variables
     $namingDirectory->bind(sprintf('php:env/%s/webappPath', $uniqueName), $webappPath);
     $namingDirectory->bind(sprintf('php:env/%s/tmpDirectory', $uniqueName), $tmpDirectory);
     $namingDirectory->bind(sprintf('php:env/%s/cacheDirectory', $uniqueName), $cacheDirectory);
     $namingDirectory->bind(sprintf('php:env/%s/sessionDirectory', $uniqueName), $sessionDirectory);
     // bind the interface as reference to the application
     $namingDirectory->bind(sprintf('php:global/%s/env/ApplicationInterface', $uniqueName), $this);
 }