Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    SplClassLoader e directory

    ciao!

    ho scaricato questa classe (SplClassLoader) per l'autoloading: https://gist.github.com/jwage/221634

    mi sembra abbastanza standard o cmq molto utilizzata.
    però ho problemi nel caricare la mia classe (che poi si tratta di Slim framework).

    in pratica sono messo così:
    -root_del_sito
    --SLIM
    --banca2

    quindi la mia app e Slim sono allo stesso livello diciamo.
    dentro banca2 ho messo la classe scaricata e questo file:
    Codice PHP:
    <?php

    require_once './SplClassLoader.php';

    $loader = new SplClassLoader('slim''Slim/Slim');
    $loader->register();
    $app = new Slim\App();

    $app->get('/', function ($request$response$args) {
        
    $response->write("Welcome to Slim!");
        return 
    $response;
    });

    $app->get('/hello[/{name}]', function ($request$response$args) {
        
    $response->write("Hello, " $args['name']);
        return 
    $response;
    })->
    setArgument('name''World!');

    $app->run();
    ottengo un classico Fatal Error Class 'Slim\App' not found.

    il App.php che sta dentro la directory Slim è questo:
    Codice PHP:
    namespace Slim;

    use 
    Exception;
    use 
    Closure;
    use 
    InvalidArgumentException;
    use 
    Psr\Http\Message\RequestInterface;
    use 
    Psr\Http\Message\ServerRequestInterface;
    use 
    Psr\Http\Message\ResponseInterface;
    use 
    Interop\Container\ContainerInterface;
    use 
    FastRoute\Dispatcher;
    use 
    Slim\Exception\Exception as SlimException;
    use 
    Slim\Http\Uri;
    use 
    Slim\Http\Headers;
    use 
    Slim\Http\Body;
    use 
    Slim\Http\Request;
    use 
    Slim\Interfaces\Http\EnvironmentInterface;
    use 
    Slim\Interfaces\RouteGroupInterface;
    use 
    Slim\Interfaces\RouteInterface;
    use 
    Slim\Interfaces\RouterInterface;

    class 
    App {
    ................

    dove sto sbagliando??

  2. #2
    il costruttore della classe che stai usando è

    Codice PHP:

     
    public function __construct($ns null$includePath null)
        {
            
    $this->_namespace $ns;
            
    $this->_includePath $includePath;
        } 

    quindi credo che il tuo codice debba essere una cosa tipo:

    Codice PHP:

    $loader 
    = new SplClassLoader('Slim',__DIR__'/Slim'); 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    allora, ho strutturato la cosa in maniera diversa.
    dentro la root ho messo una directory service2 con questo dentro:
    codice:
    banca 
     |_index.php
    libs 
     |_Slim 
     |_ |_App.php
     |_SplClassLoader.php
    dentro index.php ho messo questo:
    Codice PHP:
    require_once '../libs/SplClassLoader.php';

    $loader = new SplClassLoader('Slim''/Slim');
    $loader->register();
    $app = new Slim\App();

    $app->get('/', function ($request$response$args) {
        
    $response->write("Welcome to Slim!");
        return 
    $response;
    });

    $app->get('/hello[/{name}]', function ($request$response$args) {
        
    $response->write("Hello, " $args['name']);
        return 
    $response;
    })->
    setArgument('name''World!');

    $app->run(); 
    ma continuo ad ottenere errori:
    codice:
    Warning:  require(/Slim/Slim/App.php): failed to open stream: No such file or directory in /service2/libs/SplClassLoader.php on line 142
    
    Warning:  require(/Slim/Slim/App.php): failed to open stream: No such file or directory in /service2/libs/SplClassLoader.php on line 142
    
    Fatal error:  require(): Failed opening required '/Slim/Slim/App.php' (include_path='.:/php5.5/lib/php/') in /service2/libs/SplClassLoader.php on line 142

  4. #4
    ok così funziona:
    Codice PHP:
    $loader = new SplClassLoader('Slim'); 
    a parte che ci sono varie dipendenze da soddisfare............

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.