PHPの人気のフレームワークLaravelを利用してWebサイトの管理画面を開発することができます。
このシリーズではそんな管理画面の構築に関して、技術者向けにその手順を紹介していきます。
まず本記事ではNuxt.jsの連携方法まで。続きはこちらの記事を参考にして下さいね。
・Laravelを使って構築をしたい方
・Webサイト構築の具体的な手法が知りたい方
これらに当てはまる方におすすめの記事となっています。これを読めばLaravel(API)とNuxt.jsの連携方法が丸わかりですよ。
Laravel6ではVue.jsがデフォルトから削除され、JSの構成に関しては開発者に完全に委ねられている状態のため、
しっかり規約を設けて開発スピードの向上を図る必要があります。
そこで必要な機能が一通り揃っていて、 規約に沿った開発思想でスピードが出そうなNuxt.jsがおすすめです。
Next.jsはNuxtに比べると機能がミニマムですが、Reactの既存資産が多い場合はありだと思います。
そもそもフロントエンドにJSを使う理由は、 Laravelと疎結合にすることで人材の採用要件を下げたりそれぞれの開発に集中できるようにするためです。
同一リポジトリだと結局両方の知識が求められますし複雑になるので、リポジトリは別管理していきましょう。
いよいよLaravel(API)とNuxt.jsの具体的な連携方法を紹介していきます。
機能を詰め込みすぎても実装が終わりません。必要最低限の機能にとどめて構築することをおすすめします。
今回は、 管理画面に最低限必要な機能としてユーザー認証とCRUD機能を作ることにしました。
こちらの記事でLaravel6の環境構築は解説しているので、詳しくは割愛します。
以下のコマンドでLaravelのプロジェクトを作成します。
composer create-project --prefer-dist laravel/laravel admin_laravel_api "6.*"
次にフロントエンド側との通信を試すため、シンプルなAPIを用意します。
routes/api.php
に以下コードを追加します。
Route::get('/', function() {
return 'helloworld';
});
下記コマンドでサーバーを立ち上げておきます。
php artisan serve
これでhttp:localhost:8000/api
へアクセスしたらhelloworld
の文字列を返すAPIが出来ました。
次に下記コマンドでLaravelとは別にNuxt.jsのプロジェクトを作成します。
yarn create nuxt-app admin_next_app
yarn create nuxt-app
は下記コマンドと同義です。
yarn global add create-nuxt-app
create-nuxt-app my-app
create-nuxt-app
はNuxt.jsのセットアップをコマンド1つで行ってくれるツールです。
必要なものは後から入れたいので、
すぐに利用するaxios以外はデフォルトのままにしました。
pages/index.vue
の<script>
の中身を以下に書き換えます。
<script>
import Logo from '~/components/Logo.vue'
export default {
components: {
Logo
},
async asyncData(app) {
const data = await app.$axios.$get('http://localhost:8000/api')
return {
data
}
}
}
</script>
asyncData
は非同期なデータが用意できてから画面描写してくれるメソッドです。
returnで返したオブジェクトを<template>
内で参照できます。
先ほど受け取ったデータを{{data}}
で画面に表示します。
<template>
<div class="container">
<div>
<logo />
<h1 class="title">
{{data}}
</h1>
<h2 class="subtitle">
My superb Nuxt.js project
</h2>
<div class="links">
<a
href="https://nuxtjs.org/"
target="_blank"
class="button--green"
>
Documentation
</a>
<a
href="https://github.com/nuxt/nuxt.js"
target="_blank"
class="button--grey"
>
GitHub
</a>
</div>
</div>
</div>
</template>
下記のコマンドでサーバーを立ち上げ、
yarn run dev
http://localhost:3000にアクセスしたら以下の画面が表示されればOKです。
今のままだとAPIアクセスする時にホスト名を毎回指定する必要があります。
それを解決するためのモジュールがNuxt.jsには用意されているので、
下記コマンドでインストールします。
yarn add @nuxtjs/proxy
次にnuxt.config.js
を下記のように変更します。
const environment = process.env.NODE_ENV || 'development';
export default {
mode: 'universal',
/*
** Headers of the page
*/ head: {
title: process.env.npm_package_name || '',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
]
},
/*
** Customize the progress-bar color
*/ loading: { color: '#fff' },
/*
** Global CSS
*/ css: [
],
/*
** Plugins to load before mounting the App
*/ plugins: [
],
/*
** Nuxt.js dev-modules
*/ buildModules: [
],
/*
** Nuxt.js modules
*/ modules: [
// Doc: https://axios.nuxtjs.org/usage
'@nuxtjs/axios',
'@nuxtjs/proxy',
],
proxy: {
'/api': (environment === 'development') ? 'http://localhost:8000' : 'https://api.example.com'
},
/*
** Axios module configuration
** See https://axios.nuxtjs.org/options
*/ axios: {
},
/*
** Build configuration
*/ build: {
/*
** You can extend webpack config here
*/ extend (config, ctx) {
}
}
}
開発環境: /api
→ http://localhost:8000/api
開発環境以外: /api
→ https//api.example.com/api
にそれぞれアクセスを変更する設定です。
これで以下のようにホスト名を省略した記述が可能になります。
<script>
import Logo from '~/components/Logo.vue'
export default {
components: {
Logo
},
async asyncData(app) {
const data = await app.$axios.$get('/api')
return {
data
}
}
}
</script>
この記事では Nuxt.jsからLaravelのAPIをAjaxで通信できるようにする手順まで紹介していきました。
管理画面に最低限必要なユーザー認証やCRUD機能の実装方法などに関しては、こちらの記事で紹介しています。
このようにPHPを利用すればWeb開発が行えます。今回紹介した内容の他にも様々な構築が可能。
DEHAソリューションズではPHPに強いエンジニアが多数在籍しています。エンジニアを1から採用するよりも、効率的で低コストで、エンジニアのスポット派遣や開発サポートもおこなっています。
Laravelの環境構築を行いたい方や、PHPエンジニアの採用をしたい方はぜひお問い合わせください。
オフショア開発は、コスト削減や専門的なスキルの活用を目的として、多くの企業が採用している手法です。 しかし、オフショア開発にはセキュリティに関する特有の課題が伴います。 この記事では、オフショア開発におけるセキュリティ課題を明確にし、それに対する効果的な対策を検討します。 オフショア開発に興味がある方 オフショア開発のセキュリティ対策について知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発を行う際に気をつけるべきセキュリティ問題とその対策方法が丸わかりですよ。 (more…)
2025年、データセンター市場とクラウド市場はさらなる進化を遂げています。デジタル化の加速や生成AIなどの新技術の普及により、データ処理能力の需要が急増。 これに伴い、世界および日本国内での市場規模とプレイヤーの動きが注目されています。 この記事では、最新の市場データとトレンドをもとに、データセンターおよびクラウド市場の現状と今後の展望を詳しく解説します。 データセンターおよびクラウド市場の現状や展望が知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば国内の2025年最新のデータセンター市場やクラウド市場の動向だけでなく、世界の動向まで丸わかりですよ。 (more…)
近年、業務のデジタル化が進む中、手書きや印刷された文書を効率的にデータ化する技術が注目を集めています。 その中でも、AI(人工知能)を活用したOCR(光学文字認識)技術であるAI-OCRは、従来のOCRを大きく進化させ、多様な業界で導入が進んでいます。 この記事では、AI-OCRとは何か、従来のOCR技術との違い、その種類や具体的な導入メリットについて詳しく解説します。 AI-OCRが気になっている方AIをビジネスに取り入れたい方社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAI-OCRがどのように業務効率を向上させ、現代のビジネスにどのような価値をもたらすのかがわかりますよ。 (more…)
システム開発の外注は、効率的なソリューションを提供し、コストを節約するために非常に有益な方法です。 しかし、外注のプロジェクトは失敗する可能性もあり、それを防ぐためにはいくつかの重要なコツがあります。 そこでこの記事では、システム開発の外注プロジェクトを成功させるための5つの重要なコツを説明します。 システム開発の外注をしたい方 社内のIT人材が不足している方 オフショア開発を検討している方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム開発を成功させるための方法が丸わかりですよ。 (more…)
コスト削減や、IT人材確保の面で注目されるオフショア開発。 実はアプリ開発にももってこいの開発手法なのです。 「人件費は下がったとしても、他の面で費用がかかったりしないか?トータルコストは本当に下がるのか?」 「コストを抑えた結果、質の悪いアプリを納品されないか?」 など不安を抱えている方向けに、この記事ではアプリをオフショア開発する際のポイントを紹介していきます。 オフショア開発に興味がある方 アプリ開発を行いたい方 社内のIT人材が不足している方 オフショア開発の予算が知りたい方 これらに当てはまる方におすすめの記事となってこれを読めば、オフショア開発初心者の人でも会社選びを失敗することなく、アプリ開発を行うポイントが丸わかりですよ。 (more…)
近年、企業のデジタルトランスフォーメーション(DX)が進む中で、手書き文書をデジタル化する技術であるOCR(Optical Character Recognition)が注目を集めています。 この記事では、そんなOCRの基本的な仕組みやその活用方法、さらに業務効率化のメリットについて解説します。 OCRに興味がある方 デジタルトランスフォーメーション(DX)を進めている方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばOCRがどのような技術なのかがわかるのはもちろん、具体的な活用方法まで丸わかりですよ。 (more…)