Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

541
Views
Cómo instalar twig sin usar composer

Me gustaría instalar twig para un proyecto, pero no tengo acceso a la línea de comandos del servidor. Sólo puedo subir archivos a través de ftp. Esto significaría que tengo que configurar twig lib manualmente, es decir, crear el archivo Autoload.php yo mismo. He buscado a fondo pero la información sobre este tema es escasa. Probé la siguiente carga automática "prestada" de un proyecto diferente, pero esto no produce una configuración funcional.

 <?php /* * This file is part of Twig. * * (c) 2009 Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Autoloads Twig classes. * * @author Fabien Potencier <fabien@symfony.com> */ class Twig_Autoloader { /** * Registers Twig_Autoloader as an SPL autoloader. * * @param bool $prepend Whether to prepend the autoloader or not. */ public static function register($prepend = false) { if (version_compare(phpversion(), '5.3.0', '>=')) { spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend); } else { spl_autoload_register(array(__CLASS__, 'autoload')); } } /** * Handles autoloading of classes. * * @param string $class A class name. */ public static function autoload($class) { if (0 !== strpos($class, 'Twig')) { return; } if (is_file($file = dirname(__FILE__).'/../'.str_replace(array('_', "\0"), array('/', ''), $class).'.php')) { require $file; } } }

Cualquier ayuda sería apreciada.

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

  1. Descargar ramita. (Por ejemplo: https://github.com/twigphp/Twig/archive/2.x.zip )
  2. Extráigalo a la ruta relativa que desee (por ejemplo: ./Twig-2.x).
  3. Cambie el nombre de la carpeta Twig-2.x/src a Twig-2.x/Twig
  4. Incluya esta función spl_autoload_register() en su script de arranque.
  5. Recuerde usar FQCN para hacer referencia a las clases de Twig

Ejemplo de estructura de directorio:

 Appdir/ Appdir/Twig-2.x/ Appdir/Twig-2.x/Twig/ <- this is the original src dir renamed to Twig Appdir/templates/ Appdir/templates/index.html Appdir/cache/ Appdir/index.php

Código "index.php":

 <?php #ini_set('display_errors',1); # uncomment if you need debugging spl_autoload_register(function ($classname) { $dirs = array ( './Twig-2.x/' #./path/to/dir_where_src_renamed_to_Twig_is_in ); foreach ($dirs as $dir) { $filename = $dir . str_replace('\\', '/', $classname) .'.php'; if (file_exists($filename)) { require_once $filename; break; } } }); $loader = new \Twig\Loader\FilesystemLoader('templates'); $twig = new \Twig\Environment($loader, [ 'cache' => 'cache', ]); echo $twig->render('index.html', ['name' => 'Carlos']); ?>

Código "index.html":

 <h1>Hello {{ name }}!</h1>
about 4 years ago · Santiago Trujillo Report

0

Si realmente necesita cargar Twig sin Composer, puede usar esto: https://gist.github.com/sarciszewski/b6cd3776fbd20acaf26b

Recomiendo configurar Composer en su entorno de desarrollo local. (Puede descargarlo desde https://getcomposer.org/ ) Instale twig con Composer.

 composer require twig/twig:~2.0

Luego incluya el autocargador en su proyecto:

 require_once 'vendor/autoload.php';

Puede trabajar localmente y, cuando el proyecto esté listo, implementarlo en su servidor con el directorio del proveedor, que contiene los paquetes instalados. No necesita compositor en su servidor.

about 4 years ago · Santiago Trujillo Report

0

Después de estudiar el enlace proporcionado por András, me di cuenta de que la clave no es el mecanismo de carga, sino el hecho de que "autoload.php" parece faltar. Luego descubrí que la versión de Twig que estaba usando era de hecho una versión 2.X, que requiere al menos PHP 7. Como estoy trabajando con 5.4, esto no funcionaría, obviamente. Afortunadamente, la última versión 1.X de lib proporciona un autoload.php, por lo que a partir de ahí todo funcionó bien.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!