Laravel 5.3開発の準備初心者向け

あなた、Habraコミュニティ、そしおLaravelの䞖界ぞの新参者を迎えたす

この蚘事はララの分野の初心者向けに曞かれおおり、フレヌムワヌクの開発の初期段階で圹立぀ように蚭蚈されおいたす。

この蚘事では、いわば「基本的な」パッケヌゞを怜蚎したすが、これがないず、プロゞェクトに取り組むこずが個人的に困難になりたす。

トピックに興味があるなら、猫をお願いしたす。

ララノェル5.3



1.システム芁件


Laravel 5.3フレヌムワヌクには以䞋が必芁です。



このコンポヌネントのセットはすべお、 OpenServer for Windowsに存圚したす。

はい、フレヌムワヌクには仮想マシンずしおHomesteadがあるず誰かが蚀うでしょう。 郜合の良い人にだけお答えしたす。 個人的には、WindowsでのOpenServerは䟿利です。

ComposerずNodeJSも必芁です。

2.むンストヌル


2.1。 OpenServerを構成する


メむン

[党般]タブで、サヌバヌの起動ず管理者アカりントの芁件を有効にしたす。 hostsファむルを䜿甚するずきは、2番目が必芁です。

サヌバヌ

このタブで、仮想ディスク蚭定を「自動怜出ニヌズ」に蚭定し、「カスタムパス+ Winパス」でPath倉数の䜿甚を蚭定したす。

「倖郚アクセスからサヌバヌを保護する」ず、LANから誰も私たちにしがみ぀かないようにしおいたす。

そしお...すべお次のタブに移動したす。

モゞュヌル

私の目的のために、次のモゞュヌルのバンドルを䜿甚したす。


残りの項目は「䜿甚しない」を瀺したす。

FTPサヌバヌ

このタブで、䞍芁な堎合は、すぐにFTPサヌバヌの起動をオフにしたす。

郵䟿

デフォルトでは、すべおのメッセヌゞはロヌカルにフォルダに保存されたすが、いわば「戊闘モヌド」で確認する方が䟿利です。

そこで、SMTP経由の送信方法を蚭定しおから、サヌバヌ、ポヌト、メヌル送信者、ナヌザヌ名ログむン、アカりントからのパスワヌド、「自動」での暗号化を蚭定したす。

そしお...先に進みたす

ドメむン

毎回新しいサむトを手動で远加しないようにするには、「ドメむン管理」リストで「手動+自動怜玢」を遞択し、右偎に「パブリック」を指定したす。実行可胜ファむルが含たれおいるためです。

タスクスケゞュヌラCron

私は仕事でCronを䜿甚しおいたすので、同様に蚭定したしょう。 サむトごずに、独自のコマンドを远加する必芁があるず蚀いたす。

そのため、すべおの時間倀にシンボル「アスタリスク」*を配眮し、列に「実行」したす

php "D:\OpenServer\domains\mysite.com\artisan" schedule:run 

プロゞェクト内の職人ファむルぞのフルパスを瀺したす。

詳现付きのスクリヌンショット















2.2。 Laravel 5.3をむンストヌルする


フレヌムワヌクの展開を開始する前に、 ComposerおよびNodeJSナヌティリティがコンピュヌタヌにむンストヌルされおいるこずを確認しおください。 2番目では、ブランチのバヌゞョン6を䜿甚したすが、これは重芁ではありたせん。

フレヌムワヌクをむンストヌルする前に、 hirak / prestissimoパッケヌゞを䜿甚するこずをお勧めしたす 。これにより、フレヌムワヌクを同時にむンストヌル/曎新するずきに耇数のパッケヌゞをダりンロヌドできたす。 これがない堎合、むンストヌル/曎新プロセスは線圢です。぀たり、1぀のパッケヌゞを芁求し、応答を埅っおからダりンロヌドしサヌバヌからの応答が成功した堎合、次ぞ進みたす。 パッケヌゞ `hirak / prestissimo`を䜿甚するず、必芁なすべおのパッケヌゞを同時にダりンロヌドし、その埌むンストヌルを開始できたす。

パッケヌゞをむンストヌルするには、コン゜ヌルで実行したす

 composer global require "hirak/prestissimo:^0.3" 




したがっお、コマンドコン゜ヌルを開き、次のように入力したす。

 composer global require "laravel/installer" 

これは、最初のむンストヌル時に䞀床だけ実行する必芁がありたす。 埌続のアプリケヌションをデプロむするずき、このコマンドはスキップしたす。

むンストヌラヌをグロヌバルコンポヌザヌリポゞトリにダりンロヌドした埌、Laravel 5.3フレヌムワヌク自䜓をダりンロヌドする必芁がありたす。 これを行うには、2぀のチヌムから遞択できたす。

 laravel new blog  composer create-project --prefer-dist laravel/laravel blog 

圌らは䞡方ずも同じアクションを実行したすが、違いはただ...ですので、違いが䜕であるかは明らかです

唯䞀の泚意点は、最初のむンストヌル䞭に、コンポヌザの実行可胜ファむルぞのパスはむンストヌル時に自動的に登録されたすが、laravelコマンドぞのパスは登録されないこずです。 個人的には、「laravel」コマンドを䜿甚するず䟿利なので、「このコンピュヌタヌ」に進みたすWindows 10を䜿甚しおいるため、すべおの手順を説明したす。

「パラメヌタヌ」を開き、怜玢行に「システム」ず入力し、次に「パラメヌタヌを倉曎」ず入力したす。 [システムのプロパティ]りィンドりで、[詳现蚭定]タブに移動し、[環境倉数]ボタンをクリックしたす。

開いたりィンドりで、ナヌザヌのさたざたな環境で、 `PATH`の倉曎を開きたす。ここで、実行可胜ファむルのlaravel`ファむルにパスを远加したす。 「c\ Users \ Developer \ AppData \ Roaming \ Composer \ vendor \ bin \ `フォルダにありたす。「Developer」はアカりントナヌザヌの名前です。

詳现付きのスクリヌンショット







そのため、次のいずれかのコマンドを実行したす。

 laravel new blog composer create-project --prefer-dist laravel/laravel blog 

フレヌムワヌクはブログフォルダヌにダりンロヌドされたす。 サむトのアドレスをすぐに登録できたす。 これを行うには、コマンドを倉曎したす。

 laravel new mysite.dev composer create-project --prefer-dist laravel/laravel mysite.dev 

その埌、「OpenServer」を再起動しお、「新しいサむト」が芋えるようにする必芁がありたす。



それだけです むンストヌルが完了し、次の手順に進みたす。

3. Laravel 5.3の構成


3.1。 .gitignore


倚くの人がリポゞトリを䜿甚しおいるため、すぐに `.gitignore`ファむルに移動しお、次の圢匏になりたす。

 .env /vendor /node_modules /public/storage /.idea Homestead.yaml Homestead.json *npm-debug.log* 

぀たり、node_modulesからの情報のアンロヌドず、「public / build」およびその他の「システム」ファむルからの自動生成ファむルの犁止に含めたす。
`vendor`および` node_modules`フォルダヌのコンテンツは自動的にロヌドされたす

3.2。 環境.env


ここではすべおが非垞に簡単です。

 APP_ENV=local APP_DEBUG=true DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=my_database DB_USERNAME=root DB_PASSWORD= 

`DB_CONNECTION`-蚭定からの察応するデヌタベヌスの接続名` config / databases.php >> conntections`。

PostgreSQLの堎合は「pgsql」、MySQL / MariaDBの堎合は「mysql」を指定したす。

たた、デヌタベヌスに䜿甚されるポヌトを指定するこずを忘れないでください。 ポヌト番号は、「サヌバヌ」タブの「OpenServer」で衚瀺できたす。

その前に、 `OpenServer`構造の` PgAdmin III`アプリケヌションを䜿甚しお、デヌタベヌスを远加し、 `.env`ファむルにパラメヌタヌを曞き蟌む必芁がありたす。

3.3。 パッケヌゞ


動䜜するには、次のパッケヌゞが必芁です。



Laravelの䟋倖

このパッケヌゞは、デバッグモヌドでの開発䞭に発生する゚ラヌに関する情報の出力を改善するために必芁です。

むンストヌルは簡単です。コン゜ヌルで次のコマンドを実行したす。

 composer require graham-campbell/exceptions composer require filp/whoops --dev 

次に、ファむル `config / app.php`で、サヌビスプロバむダヌ` GrahamCampbell \ Exceptions \ ExceptionsServiceProvider :: class`を `providers`ブロックに远加したす。

その埌、「use」ブロック内のファむル「App \ Exceptions \ Handler.php」で、「use Illuminate \ Foundation \ Exceptions \ Handler as ExceptionHandler;」を「use GrahamCampbell \ Exceptions \ NewExceptionHandler as ExceptionHandler;」に倉曎したす

graham-campbell / exceptionsの詳现をご芧ください。

スクリヌンショット



Laravelデバッグバヌ

コマンドを実行したす

 composer require barryvdh/laravel-debugbar 

次に、ファむル `config / app.php`で、サヌビスプロバむダヌ` Barryvdh \ Debugbar \ ServiceProvider ::クラスを `プロバむダヌ`ブロックに远加したす。

barryvdh / laravel-debugbarパッケヌゞの詳现をご芧ください。

スクリヌンショット



Laravel 5 IDEヘルパヌゞェネレヌタヌ

コマンドを亀互に実行したす。

 composer require barryvdh/laravel-ide-helper composer require doctrine/dbal 

次に、 `config / app.php`ファむルで、サヌビスプロバむダヌのBarryvdh \ LaravelIdeHelper \ IdeHelperServiceProvider ::クラスを`プロバむダヌ `ブロックに远加したす。

その埌、ルヌトディレクトリからのファむルcomposer.jsonのブロック `scripts / post-update-cmd`は次のように瞮小されたす

 { "scripts": { "post-update-cmd": [ "Illuminate\\Foundation\\ComposerScripts::postUpdate", "php artisan ide-helper:generate", "php artisan ide-helper:meta", "php artisan optimize" ] } } 

barryvdh / laravel-ide-helperパッケヌゞの詳现をご芧ください。

Laravel 5拡匵ゞェネレヌタヌ

個人的には、「php artisan makemigrationschema」ずいう1぀のコマンドを䜿甚しお移行ずモデルを䜜成するず䟿利です。

たずえば、フィヌルド `slug`、` title`、 `content`を持぀テヌブル` news`を䜜成する必芁がありたす。

 php artisan make:migration:schema create_news_table --schema="slug:string:unique, title:string:unique, content:text" 


Laravel 5.3でパッケヌゞをむンストヌルするには、次のコマンドを実行する必芁がありたす。

 composer require laracasts/generators --dev 

次に、ファむル `config / app.php`にサヌビスプロバむダヌ` Laracasts \ Generators \ GeneratorsServiceProvider ::クラスを `プロバむダヌ`ブロックに远加したす。

laracasts / generatorsパッケヌゞの詳现をご芧ください。

パッケヌゞ構成の終了


すべおのパッケヌゞをむンストヌルしたら、コン゜ヌルで実行したす。

 php artisan vendor:publish composer update 


パッケヌゞを扱う。 次はElixirです。

4.゚リキシル


4.1 Elixirのむンストヌル


プロゞェクトフォルダヌにあるコン゜ヌルで、次のコマンドを順番に実行したす。

 npm install --global gulp-cli npm install --no-bin-links 

Laravel 5.2の時代から、5.3ですぐに䜿甚できるVueJsを䜿甚するため、必芁なすべおのパッケヌゞにも接続したす。

 npm rebuild node-sass npm install hammerjs vue-async-data materialize-css 

泚「vue」や「vue-resource」などのコンポヌネントは「すぐに䜿甚できる」ため、含たれおいたせん。

次に、ファむル `resources / asset / js / bootstrap.js`のline`りィンドりの埌。$ = Window.jQuery = require 'jquery';` CSS CSSフレヌムワヌクTwitter Bootstrap `require 'bootstrap-sass' ; `。 この䟋では、MaterializeCSSではなく、MaterializeCSSを䜿甚しおいるため、「require '../ vendor / materialize-css / js / bin / materialize.min';」に眮き換えたす。

次に、芋぀けたす

window.Vue = require 'vue';
require 'vue-resource';

思い起こしおください

window.Vue = require 'vue';
var VueResource = require 'vue-resource';
var VueAsyncData = require 'vue-async-data';

Vue.useVueResource;
Vue.useVueAsyncData;


4.2 MaterializeCSS


私は個人的にはより珟代的に芋えるので、かなり前にTwitter Bootstrap CSSフレヌムワヌクから切り替えおMaterializeCSSの 「マテリアル」デザむンを採甚したした。

それをむンストヌルするには、次のコマンドを実行する必芁がありたす。

 npm install materialize-css 

次に、MaterializeCSSが䜿甚するテンプレヌトのフォント `Material Icon`を接続する必芁がありたす。

 <!DOCTYPE html> <html> <head> <!--Import Google Icon Font--> <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> </head> <body> // </body> </html> 


4.3 gulpfile.jsの構成


開発時、非垞に䟿利なブラりザツヌルはコン゜ヌルです。 問題のある行の「クむック怜玢」を敎理するには、ファむル「gulpfile.js」に行「elixir.config.sourcemaps = true;」を远加したす。これは「゜ヌスマップ」の生成を担圓したす。

MaterializeCSSずSASSを䜿甚する堎合、次のようになりたす。

䜜業gulpfile.js
 const elixir = require('laravel-elixir'); require('laravel-elixir-vue'); elixir.config.sourcemaps = true; /* |-------------------------------------------------------------------------- | Elixir Asset Management |-------------------------------------------------------------------------- | | Elixir provides a clean, fluent API for defining some basic Gulp tasks | for your Laravel application. By default, we are compiling the Sass | file for our application, as well as publishing vendor resources. | */ elixir(mix => { var assets = 'resources/assets/', node_modules = '../../../node_modules/'; mix .sass('app.scss', 'public/css/app.css') .copy(assets + 'images', 'public/images') .copy(node_modules + 'materialize-css/fonts', 'public/build/fonts') .webpack('app.js') /* * Version */ .version( [ 'css/app.css', 'js/app.js' ] ); } ); 


それぞれの方法が必芁な理由を完党に説明する必芁はないず思いたす。 ここにドキュメントぞのリンクを残しおください。

4.3リ゜ヌスSASS


このプロゞェクトたたはそのプロゞェクトを開発するためにMaterializeCSSフレヌムワヌクのすべおのコンポヌネントが必芁なわけではないため、ファむル `resources / asset / sass / app.scss`にそれらぞのリンクを远加したす。

app.scssのコンテンツ
 @charset "UTF-8"; // Mixins // @import "../../../node_modules/materialize-css/sass/components/prefixer"; @import "../../../node_modules/materialize-css/sass/components/mixins"; @import "../../../node_modules/materialize-css/sass/components/color"; // Variables; @import "../../../node_modules/materialize-css/sass/components/variables"; // Reset @import "../../../node_modules/materialize-css/sass/components/normalize"; // components @import "../../../node_modules/materialize-css/sass/components/global"; @import "../../../node_modules/materialize-css/sass/components/icons-material-design"; @import "../../../node_modules/materialize-css/sass/components/grid"; @import "../../../node_modules/materialize-css/sass/components/navbar"; @import "../../../node_modules/materialize-css/sass/components/roboto"; @import "../../../node_modules/materialize-css/sass/components/typography"; @import "../../../node_modules/materialize-css/sass/components/cards"; @import "../../../node_modules/materialize-css/sass/components/toast"; @import "../../../node_modules/materialize-css/sass/components/tabs"; @import "../../../node_modules/materialize-css/sass/components/tooltip"; @import "../../../node_modules/materialize-css/sass/components/buttons"; @import "../../../node_modules/materialize-css/sass/components/dropdown"; @import "../../../node_modules/materialize-css/sass/components/waves"; @import "../../../node_modules/materialize-css/sass/components/modal"; @import "../../../node_modules/materialize-css/sass/components/collapsible"; @import "../../../node_modules/materialize-css/sass/components/chips"; @import "../../../node_modules/materialize-css/sass/components/materialbox"; @import "../../../node_modules/materialize-css/sass/components/forms/forms"; @import "../../../node_modules/materialize-css/sass/components/table_of_contents"; @import "../../../node_modules/materialize-css/sass/components/sideNav"; @import "../../../node_modules/materialize-css/sass/components/preloader"; @import "../../../node_modules/materialize-css/sass/components/slider"; @import "../../../node_modules/materialize-css/sass/components/carousel"; @import "../../../node_modules/materialize-css/sass/components/date_picker/default"; @import "../../../node_modules/materialize-css/sass/components/date_picker/default.date"; @import "../../../node_modules/materialize-css/sass/components/date_picker/default.time"; 



4.3リ゜ヌスビュヌ


したがっお、前の手順の過皋で、コン゜ヌルで「gulp」コマンドを実行するこずで、出力に2぀のファむル「app.js」ず「app.css」を取埗したす。 バヌゞョン管理システムが䜿甚されたのでブラりザによるリ゜ヌスのキャッシングに぀いお怒らないでください、テンプレヌト `resources / views / layouts / app.blade.php`で、以䞋を蚘述する必芁がありたす。

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> {{--<!-- CSRF Token -->--}} <meta name="csrf-token" content="{{ csrf_token() }}"> {{--<!--Import Google Icon Font-->--}} <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> {{--<!-- Styles -->--}} <link href="{{ elixir('css/app.css') }}" rel="stylesheet"> </head> <body> // Content {{--<!-- JavaScripts -->--}} <script src="{{ elixir('js/app.js') }}"></script> </body> </html> 


5.「パン」


クラスの名前が倉曎され、「composer update」コマンドがすぐに機胜しなくなるこずがよくありたす。

コン゜ヌルコマンドの実行時に発生するほずんどの゚ラヌに぀いおは、コマンドが圹立ちたす。

 composer dump-autoload composer dumpautolod 

はい、コマンドは同じで、䞡方の方法が正しいです。 どちらを遞ぶかはあなた次第です。

たた、すべおの `artisan`コマンドのリストを芋るず䟿利です

 php artisan list 

そしお、もちろん、アクティブなルヌトのリスト

 php artisan route:list 


リポゞトリ


垌望する人のために、圌らはこのマニュアルで蚭定された既成のプロゞェクトを公開リポゞトリに投皿したした。

぀たり、そこにあるもののように「生きおいる」ように芋えたす。

この䟋をデプロむするのは簡単です。 リポゞトリのクロヌンを䜜成したす。

 git clone https://github.com/andrey-helldar/laravel-example-to-juniors.git 

そしお、コマンドを亀互に実行したす。

 composer install npm install gulp 

それだけです。

ご利甚をお楜しみください。

PS誰かが私に反察し、他のより良い解決策があれば、コメントに曞いおください
私たちは、あなたの吊定性に぀いおコメントし、事実ずあなたがそれをどうするかを瀺しおくれるようお願いしたす。
散氎だけでは建蚭的ではありたせん。 スパムでペヌゞを混乱させるだけで、それ以䞊はありたせん。

UPD1 JhaoDa は、 Laravel 5.3の䜜業バヌゞョンの完成したスケルトンぞのリンクを共有したした 。

LaravelRUS / laravel-skeleton -LaravelRUSコミュニティのLaravel 5.3ベヌスのアプリケヌションスケルトン。

Source: https://habr.com/ru/post/J309568/


All Articles