2016-07-25 26 views
1

私はWindowsとLinuxベースのサーバー上にWebサーバーを持っています。私がWindows上でLaravel 5プロジェクトを立ち上げても問題なく動作しますが、私はLinux(ubuntu)サーバに問題があり、私のホスティングにも同じ問題があります。私は、このようなエラーを取得していインデックス・ページをロードしようとしているとき:Laravelの5つのブレードテンプレートで "use"を使用してカスタムクラスを使用する方法は?

クラス「のApp \ヘルパー\ SUBSTRは」

を見つけていない、私はカスタムヘルパーを使用しているので、それは起こりました私のブレードテンプレートにし、このような「使用」演算子を経由して、それをロードしていた:

<?php 

use App\Helpers\Substr; 
use App\Helpers\LoaderBtn; 

?> 

@extends('zaks.public') 

@section('content') 

@include('zaks.search') 

だから、何は、プロジェクトが終了した。このような状況では良い解決策になるかもしれませんか?

+3

代わりにビューコンポーザを使用してください。https://laravel.com/docs/5.2/views#view-composers –

+0

ありがとうございます!ビューの作曲家は、このプロジェクトにはよく見えますが、何らかの形で私はWindowsのすべてが機能する理由を理解できません。大文字と小文字は区別されますか?どうして? – Nesquik27

答えて

0

Windowsマシンのファイルシステムで大文字と小文字が区別されないという問題があると思います。したがって、App\Helpers\Substrのようなクラスをロードしようとすると、実際にはApp\Helpers\SubStrを意味するか、大文字小文字(PSR-4)の場合、ファイルパスがクラス名と正確に一致しません。

しかし、Linuxはそれほど寛容ではなく、大文字と小文字を区別するファイルシステムを持っています(少なくとも私の開発者はUbuntuのバージョンですが、Linuxのデフォルトです)。

これを修正するために行うべきことは、「大文字の誤植」を追跡して修正することです。

これらの問題を回避し、間違いを直ちにキャッチするには、大文字と小文字を区別したファイルシステムで開発することを強くお勧めします。私はあなたが大文字と小文字を区別するパーティションをMac上で作れることを知っています。だから、何らかの形でWindowsのために同様のことができると思います。あるいは開発中にhomesteadのようなLinux VMで作業することもできます。私はあなたの開発環境をできるだけプロダクション環境の近くに保つことの大きなファンです。

2

まず、クラスがComposerなどで自動読み込みされていることを確認します。

'aliases' => array(
    // other aliases... 
    'App_Helper_Substr' => 'App\Helpers\Substr', 
); 

をし、右あなたのビューで通常の方法、それを使用します:

その後、あなたはこのように、config/app.php'aliases'配列にあなたの名前空間のクラスを追加することができますあなたは

をすることができますあなたのエイリアスにあなたが何をしたいかを付けます。

+0

私はそれをやろうとしていますが、私のためにはうまくいかないようです。このソリューションは、 Intervention \ Image \ ImageServiceProvider :: classと 'Image' => Intervention \ Image \ Facades \ Image :: classのようなカスタムクラスごとにサービスプロバイダーでのみ動作し、 – Nesquik27

関連する問題