Laravelは、ウェブアプリケーション フレームワークの中でも、今世界中で広く使われているフレームワークです。
フレームワークというのは、ソフトウェア開発をしている上で共通で使われるような機能をまとめて枠組みとして提供できるようにしたライブラリ集のようなものです。
ライブラリとの違いは、フレームワークには、ソフトウェア設計やアプリケーションの大枠まで提供されるところです。
特にウェブアプリケーション フレームワークだと、ウェブアプリを作るための大枠が用意されていいます。
具体的には、ブラウザからのリクエストを受けてリプライを返答する仕組みが用意されていたり、また、アプリケーションをMVCに分けてコーディングするようにソフトウェア設計もされています。他にもいろいろ用意されてますよ。
PHPでウェブアプリケーションを開発するのであれば、まずはLaravelをやっておけば良いと思いますし、Laravelを使うためにPHPを選んでも良いぐらい、使いやすいしパワフルなフレームワークだと思います。
この記事では、composerを使ってLaravelでウェブアプリケーション開発を始める手順を紹介します。
composerを使ったLaravelインストール手順
composerの準備
Laravelをインストールするために、PHPのライブラリ管理ツールcomposerを使います。
composerがインストールされてなければ、下の記事を参考にインストールしてください。
Laravelの新しいプロジェクトを作成
PowerShellやgit bash などのコマンド入力アプリを起動します。
Laravelのプロジェクトを作成したいルートフォルダに移動して、
1 |
composer create-project --prefer-dist laravel/laravel プロジェクト名 |
と入力して、プロジェクトを作成します。laravel/laravelというのがlaravel本体を意味します。もし、特定のバージョンをインストールしたい場合は、laravel/laravel=5.8 のように、バージョンを指定することも可能です。
例えば、laravel_prj1という名前のLaravelプロジェクトを作成してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
user@cf-nx2 MINGW64 /c/data/tk/work/lara $ composer create-project --prefer-dist laravel/laravel laravel_prj1 Installing laravel/laravel (v6.0.2) - Installing laravel/laravel (v6.0.2): Downloading (100%) Created project in laravel_prj1 > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 84 installs, 0 updates, 0 removals - Installing symfony/polyfill-ctype (v1.12.0): Downloading (100%) - Installing phpoption/phpoption (1.5.0): Loading from cache - Installing vlucas/phpdotenv (v3.6.0): Downloading (100%) - Installing symfony/css-selector (v4.3.4): Downloading (100%) - Installing tijsverkoyen/css-to-inline-styles (2.2.1): Loading from cache - Installing symfony/polyfill-php72 (v1.12.0): Downloading (100%) - Installing symfony/polyfill-mbstring (v1.12.0): Downloading (100%) - Installing symfony/var-dumper (v4.3.4): Downloading (100%) - Installing symfony/routing (v4.3.4): Downloading (100%) - Installing symfony/process (v4.3.4): Downloading (100%) - Installing symfony/polyfill-php73 (v1.12.0): Downloading (100%) - Installing symfony/polyfill-intl-idn (v1.12.0): Downloading (100%) - Installing symfony/mime (v4.3.4): Downloading (100%) - Installing symfony/http-foundation (v4.3.4): Downloading (100%) - Installing symfony/event-dispatcher-contracts (v1.1.5): Downloading (100%) - Installing psr/container (1.0.0): Loading from cache - Installing symfony/event-dispatcher (v4.3.4): Downloading (100%) - Installing psr/log (1.1.0): Loading from cache - Installing symfony/debug (v4.3.4): Downloading (100%) - Installing symfony/http-kernel (v4.3.4): Downloading (100%) - Installing symfony/finder (v4.3.4): Downloading (100%) - Installing symfony/service-contracts (v1.1.6): Downloading (100%) - Installing symfony/console (v4.3.4): Downloading (100%) - Installing symfony/polyfill-iconv (v1.12.0): Downloading (100%) - Installing doctrine/lexer (1.1.0): Downloading (100%) - Installing egulias/email-validator (2.1.11): Downloading (100%) - Installing swiftmailer/swiftmailer (v6.2.1): Loading from cache - Installing paragonie/random_compat (v9.99.99): Loading from cache - Installing ramsey/uuid (3.8.0): Loading from cache - Installing psr/simple-cache (1.0.1): Loading from cache - Installing opis/closure (3.4.0): Downloading (100%) - Installing symfony/translation-contracts (v1.1.6): Downloading (100%) - Installing symfony/translation (v4.3.4): Downloading (100%) - Installing nesbot/carbon (2.25.1): Downloading (100%) - Installing monolog/monolog (2.0.0): Downloading (100%) - Installing league/flysystem (1.0.55): Downloading (100%) - Installing erusev/parsedown (1.7.3): Loading from cache - Installing dragonmantank/cron-expression (v2.3.0): Loading from cache - Installing doctrine/inflector (v1.3.0): Loading from cache - Installing laravel/framework (v6.1.0): Downloading (100%) - Installing fideloper/proxy (4.2.1): Downloading (100%) - Installing jakub-onderka/php-console-color (v0.2): Loading from cache - Installing jakub-onderka/php-console-highlighter (v0.4): Loading from cache - Installing dnoegel/php-xdg-base-dir (0.1): Loading from cache - Installing nikic/php-parser (v4.2.4): Downloading (100%) - Installing psy/psysh (v0.9.9): Loading from cache - Installing laravel/tinker (v1.0.10): Downloading (100%) - Installing scrivo/highlight.php (v9.15.10.0): Downloading (100%) - Installing filp/whoops (2.5.0): Downloading (100%) - Installing facade/ignition-contracts (1.0.0): Downloading (100%) - Installing facade/flare-client-php (1.1.0): Downloading (100%) - Installing facade/ignition (1.9.2): Downloading (100%) - Installing fzaninotto/faker (v1.8.0): Loading from cache - Installing hamcrest/hamcrest-php (v2.0.0): Loading from cache - Installing mockery/mockery (1.2.4): Downloading (100%) - Installing nunomaduro/collision (v3.0.1): Loading from cache - Installing sebastian/version (2.0.1): Loading from cache - Installing sebastian/type (1.1.3): Downloading (100%) - Installing sebastian/resource-operations (2.0.1): Loading from cache - Installing sebastian/object-reflector (1.1.1): Loading from cache - Installing sebastian/recursion-context (3.0.0): Loading from cache - Installing sebastian/object-enumerator (3.0.3): Loading from cache - Installing sebastian/global-state (3.0.0): Downloading (100%) - Installing sebastian/exporter (3.1.2): Downloading (100%) - Installing sebastian/environment (4.2.2): Loading from cache - Installing sebastian/diff (3.0.2): Loading from cache - Installing sebastian/comparator (3.0.2): Loading from cache - Installing phpunit/php-timer (2.1.2): Downloading (100%) - Installing phpunit/php-text-template (1.2.1): Loading from cache - Installing phpunit/php-file-iterator (2.0.2): Loading from cache - Installing phpunit/php-token-stream (3.1.1): Downloading (100%) - Installing theseer/tokenizer (1.1.3): Downloading (100%) - Installing sebastian/code-unit-reverse-lookup (1.0.1): Loading from cache - Installing phpunit/php-code-coverage (7.0.8): Downloading (100%) - Installing webmozart/assert (1.5.0): Downloading (100%) - Installing phpdocumentor/reflection-common (2.0.0): Downloading (100%) - Installing phpdocumentor/type-resolver (1.0.1): Downloading (100%) - Installing phpdocumentor/reflection-docblock (4.3.2): Downloading (100%) - Installing doctrine/instantiator (1.2.0): Loading from cache - Installing phpspec/prophecy (1.9.0): Downloading (100%) - Installing phar-io/version (2.0.1): Loading from cache - Installing phar-io/manifest (1.0.3): Loading from cache - Installing myclabs/deep-copy (1.9.3): Downloading (100%) - Installing phpunit/phpunit (8.4.0): Downloading (100%) symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump) symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader) symfony/routing suggests installing symfony/yaml (For using the YAML loader) symfony/routing suggests installing symfony/expression-language (For using expression matching) symfony/routing suggests installing doctrine/annotations (For using the annotation loader) symfony/polyfill-intl-idn suggests installing ext-intl (For best performance) symfony/event-dispatcher-contracts suggests installing psr/event-dispatcher symfony/event-dispatcher suggests installing symfony/dependency-injection symfony/http-kernel suggests installing symfony/browser-kit symfony/http-kernel suggests installing symfony/config symfony/http-kernel suggests installing symfony/dependency-injection symfony/service-contracts suggests installing symfony/service-implementation symfony/console suggests installing symfony/lock egulias/email-validator suggests installing ext-intl (PHP Internationalization Libraries are required to use the SpoofChecking validation) swiftmailer/swiftmailer suggests installing ext-intl (Needed to support internationalized email addresses) swiftmailer/swiftmailer suggests installing true/punycode (Needed to support internationalized email addresses, if ext-intl is not installed) paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.) ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter) ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator) ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator) ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).) ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.) ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid) symfony/translation suggests installing symfony/config symfony/translation suggests installing symfony/yaml monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) monolog/monolog suggests installing elasticsearch/elasticsearch (Allow sending log messages to an Elasticsearch server via official client) monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib) monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required)) monolog/monolog suggests installing ext-mongodb (Allow sending log messages to a MongoDB server (via driver)) monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server (via library)) monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB) monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome) league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem) league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files) league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage) league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage) league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2) league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3) league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage) league/flysystem suggests installing srmklive/flysystem-dropbox-v2 (Allows you to use Dropbox storage for PHP 5 applications) league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching) league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib) league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter) laravel/framework suggests installing ext-memcached (Required to use the memcache cache driver.) laravel/framework suggests installing ext-pcntl (Required to use all features of the queue worker.) laravel/framework suggests installing ext-posix (Required to use all features of the queue worker.) laravel/framework suggests installing ext-redis (Required to use the Redis cache and queue drivers.) laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.0).) laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (^2.6).) laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun mail driver and the ping methods on schedules (^6.0).) laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (^1.0).) laravel/framework suggests installing league/flysystem-cached-adapter (Required to use the Flysystem cache (^1.0).) laravel/framework suggests installing league/flysystem-sftp (Required to use the Flysystem SFTP driver (^1.0).) laravel/framework suggests installing moontoast/math (Required to use ordered UUIDs (^1.1).) laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (^4.0).) laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (^4.0).) laravel/framework suggests installing symfony/cache (Required to PSR-6 cache bridge (^4.3.4).) laravel/framework suggests installing symfony/psr-http-message-bridge (Required to use PSR-7 bridging features (^1.2).) laravel/framework suggests installing wildbit/swiftmailer-postmark (Required to use Postmark mail driver (^3.0).) psy/psysh suggests installing ext-pcntl (Enabling the PCNTL extension makes PsySH a lot happier :)) psy/psysh suggests installing ext-posix (If you have PCNTL, you'll want the POSIX extension as well.) psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.) psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.) filp/whoops suggests installing whoops/soap (Formats errors as SOAP responses) facade/ignition suggests installing laravel/telescope (^2.0) sebastian/global-state suggests installing ext-uopz (*) sebastian/environment suggests installing ext-posix (*) phpunit/phpunit suggests installing phpunit/php-invoker (^2.0.0) phpunit/phpunit suggests installing ext-soap (*) Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. > @php artisan key:generate --ansi Application key set successfully. |
composerの create-project コマンドによって、laravelを使うプロジェクトのひな形がダウンロードされて、更にlaravelやlaravelに必要なパッケージのダウンロードが行われています。
–prefer-dist オプションはデフォルトとなってるため付けなくてもよいのですが、公式サイトの例でもついてますね。このオプションはディストリビューションパッケージの方を優先させるという意味です。–prefer-sourceとすると、ソースパッケージが優先されます。
Laravelひな形プロジェクトの動作確認
Laravelのプロジェクトには、Laravelローカル開発用のサーバ起動がついています。ですのでXAMPPやapacheなどのウェブサーバーアプリがインストールされていなくても、開発を始めることができます。
開発用サーバーを起動するには、create-project で作られたフォルダに移動して、
1 |
php artisan serve |
とコマンドを入力します。
このままブラウザからアクセスしてみましょう。
上図のログを見ると、サーバーURLは<http://127.0.0.1:8000>とありますが、127.0.0.1 というのは自分のコンピュータのことで、localhost としても大丈夫です。
ブラウザを起動して、URLに http://localhost:8000 を指定してアクセスしてみましょう。
下図のように、Laravel の画面が表示されれば、Laravelプロジェクトの作成は成功です。
まとめ
この記事では、composerを使ってLaravelをインストールする手順を紹介しました。
実際には、composerで新しくPHPのプロジェクトを作ってそこに、Laravelのひな形アプリをダウンロードして、Laravelに必要なライブラリをインストールしています。
また、ローカルサーバー(自分のパソコン)で開発テストを行なうための簡易的なサーバーを起動して、Laravelプロジェクトにブラウザでアクセスできるところまで紹介しました。
これでLaravelを使ったウェブアプリケーションの開発を始めることができますので、色々といじって行きましょう。
Laravelはとても強力なフレームワークでいろいろな便利機能がありますよ。そのあたりもメルマガでもいろいろと書いてますので、よかったら登録してみてください。
メルマガ登録フォーム
コメント