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エンジニアの採用をしたい方はぜひお問い合わせください。
近年、AI技術の進化とともに、業務効率化やサービス向上を目的とした「AIエージェント」の導入が急速に進んでいます。 弊社でも、この流れを受けてAIエージェントの導入を進め、多くの現場で業務の質とスピードの両立を実現することができました。 この記事では、実際に弊社が取り組んだAIエージェントの活用事例を紹介しながら、AI導入によるメリットとその可能性についてご紹介いたします。 AIエージェントが気になる方 AIエージェントの事例が知りたい方 社内の人材不足にお悩みの方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの成功事例が丸わかりですよ。 (more…)
近年、業務効率化や顧客対応の高度化を目的として、企業や自治体、教育機関など多くの組織で「AIエージェント」の導入が進んでいます。 AIエージェントとは、人工知能を活用して自動的に応答や処理を行うシステムの総称で、チャットボットやバーチャルアシスタント、RPA(Robotic Process Automation)などが含まれます。 しかしながら、AIエージェントの導入には多くの期待が寄せられる一方で、現場ではさまざまな課題に直面するケースも少なくありません。 この記事では、AIエージェント導入によくある課題とその解決方法について、具体的に解説していきます。 AIエージェントに興味がある方 AIエージェントの導入に不安がある方 社内の人材不足にお悩みの方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの特徴がわかるのはもちろん、うまく活用するための方法もわかりますよ。 (more…)
近年、AI技術の進化により、私たちの生活やビジネスのあらゆる場面で人工知能(AI)が活用されるようになっています。 その中でも注目されているのが「AIエージェント」です。音声アシスタント、チャットボット、カスタマーサポートなど、さまざまな場面で導入が進むAIエージェントは、業務効率化やユーザー体験の向上に大きな可能性を秘めています。 この記事では、AIエージェントの基本的な定義から、その特徴、導入メリット、さらに活用事例や今後の展望までを網羅的に解説します。 AIエージェントが気になる方 社内の人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの特徴や具体的な活用メリットがわかりますよ。 (more…)
AI(人工知能)は、世界各国の経済成長を支える基盤技術として注目されています。 とりわけベトナムでは、政府が国家戦略としてAIの導入を明確に位置づけ、経済、教育、公共行政、スタートアップ育成まで多岐にわたる分野で取り組みを強化しています。 この記事では、「ベトナムAI経済2025年」レポートをもとに、マクロ経済との接続性、国家戦略、セクター別の導入状況、スタートアップ・投資動向、そして将来の展望について解説します。 ベトナムのAIが気になる方 最新のベトナムの経済動向が気になる方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAIがもたらすベトナム経済の進化と、その背景にある政策と市場構造を総合的に理解することができます。 (more…)
近年、開発現場では「品質」「スピード」「セキュリティ」のすべてを高次元で実現することが求められています。 特に、高度な専門性や情報セキュリティが重要視される分野では、国内同様の品質と体制が前提となります。 そんな中、「No-BrSEオフショア開発」をご紹介します。 これは従来のオフショア開発におけるブリッジSE(BrSE)を介さず、日本語で直接やり取りができる完全日本語対応のラボ型開発チームを導入するモデルです。 この記事ではそんなNo-BrSE開発の特徴、メリット、適した活用シーンまでを詳しく解説します。 No-BrSEオフショア開発が気になる方 社内のIT人材が不足している方 開発の品質を高めたい方 これらに当てはまる方におすすめの記事となっています。これを読めばNo-BrSEオフショア開発のメリットや活用方法が丸わかりですよ。 (more…)
近年、開発コスト削減やリソース確保を目的として「オフショア開発」を導入する企業が増えています。 その中でも開発スタイルとして注目されているのが「請負型(受託型)」の契約形態です。 この記事では、請負型の基本的な概要から、メリット・デメリット、向いているプロジェクトの特徴、活用シーンまでを徹底解説します。 オフショア開発が気になる方 請負型について気になる方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発の請負型について メリットデメリットがわかるだけでなく活用できるシーンまで丸わかりですよ。 (more…)