2014-11-15 2 views
6

Ok, w laravel 4, jeśli chcę dodać moje własne klasy niestandardowej, np: Biblioteka \ myFunction.php potem wykonaj następujące kroki:Jak dodać własną klasę niestandardową w Laravel 5?

  1. add "myFunctions.php" Into app /library/myFunctiosn.php
  2. w app/start/global.php w terminie classLoader :: addDirectories (array (, dodaję app_path(). '/ Library',
  3. i wezwać go w moim zdaniem ostrza, dodaję następujące kody
<?php 
    $FmyFunctions1 = new myFunctions; 
    $is_ok1=($FmyFunctions1->is_ok()); 
?> 
  1. Zawartość aPP/Library/myFunctions.php jest:
<?php namespace App\library { 

    class myFunctions { 
     public function is_ok() { 
      return 'myFunction is OK'; 
     } 
    } 

} 
?> 

I to działa.

Ale jak to zrobić w Laravel 5 ???

PS: Czytałem What are the best practices and best places for laravel 4 helpers or basic functions?

i starał się dodać "APP/Library /", do autoload tablicy i uruchomić kompozytor dum-AutoLoad, ale utrzymuje mi błąd:

FatalErrorException w linii xxxx xx: C Lass 'myFunctions' nie znaleziono

Ja też już próbuje użyć:

composer update 
composer dump-autoload 
php artisan dump 
php artisan clear-compiled 
php artisan dump-autoload 
php artisan optimize 
php artisan route:clear 
php artisan route:scan 
php artisan route:list 

Ale nadal nie działa ...

+0

Spróbuj uruchomić kompozytor zrzutu AutoLoad zamiast – Richie

+0

już i nie działa albo –

+0

use namespace automatyczne ładowanie w composer.json – itachi

Odpowiedz

3

Po niekiedy do prób i błędów znaleźć odpowiedź:

Nie trzeba modyfikować kompozytora. Wystarczy zmodyfikować ostrze w

<?php 
    $FmyFunctions1 = new \App\library\myFunctions; 
    $is_ok = ($FmyFunctions1->is_ok()); 
?> 
+0

dlaczego ten błąd odbicia dać? – Gokigooooks

4

This powinno pomóc.

FYI: Zasadniczo, można utworzyć inny katalog w aplikacji, a następnie przestrzeni nazw plików tam odpowiednio:

app/CustomStuff/CustomDirectory/SomeClass.php.

Następnie w ramach SomeClass.php, upewnij się przestrzeni nazw to:

<?php namespace App\CustomStuff\CustomDirectory; 

class Someclass {} 

Teraz można uzyskać dostęp do tej klasy przy użyciu nazw w swoich klasach:

użycie App \ CustomStuff \ CustomDirectory \ SomeClass;