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政策やデジタル化の推進、海外企業による投資拡大を追い風に、東南アジア有数の成長市場として注目を集めています。 この記事では、最新の市場規模や市場シェア、成長を支える要因、主要企業の動向をもとに、2034年に向けたベトナム企業AI市場の将来性と日本企業に広がるビジネスチャンスについて詳しく解説します。 AI市場に興味がある方 ベトナムのIT市場に興味がある方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばベトナム企業のAI市場規模がわかるのはもちろん将来の予測もわかりますよ。 (more…)
近年、システム開発で代表的な手法として長年利用されてきたのが「ウォーターフォール開発」と「アジャイル開発」を組み合わせた「ハイブリッド開発」が新たな選択肢として注目されています。 この記事ではそんな「ハイブリッド開発」について、どう言った特徴があるのかや、企業価値を最大化するためにはどのような視点で開発戦略を選択すべきかについて見ていきます。 アジャイル開発に興味がある方 DX化を進めたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば「ウォーターフォール開発」と「アジャイル開発」のそれぞれの特徴と、それを掛け合わせた「ハイブリッド開発」の特徴が丸わかりですよ。 アジャイル開発の特徴とメリット アジャイル開発とは、「素早い」「俊敏な」という意味を持つ言葉の通り、変化に柔軟に対応しながらシステムを開発する手法です。 従来のウォーターフォール開発では、要件定義、設計、開発、テスト、リリースという工程を順番に進め、最後に完成したシステムを利用者へ提供します。 一方、アジャイル開発では短期間の開発サイクル(スプリント)を繰り返します。一般的には1〜4週間程度の期間で、優先度の高い機能を開発し、動作する状態で提供します。 その後、利用者から意見をもらい、次の開発に反映します。 この流れを繰り返すことで、利用者の本当のニーズに近いシステムを作りやすくなります。 例えばECサイトの決済機能を開発する場合、最初からすべての決済方法を実装するのではなく、まずクレジットカード決済だけを提供し、その後電子マネーやQR決済などを追加していくことが可能です。 この方法では、早い段階でサービスを市場へ投入でき、利用状況を確認しながら改善できます。 アジャイル開発の主なメリットは以下の通りです。…
企業の基幹システムの多くは、10年、20年、あるいは30年以上にわたって運用され続けています。 しかし近年、こうしたレガシーシステムを取り巻く環境は大きく変化しています。 近年、注目されているのが「7Rフレームワーク」です。 7Rフレームワークは既存システムをクラウド環境へ移行する際に採用される代表的な意思決定モデルであり、システムごとに最適な移行戦略を選択するための考え方です。 この記事ではそんな7Rフレームワークについて、特徴を紹介していきます。 7Rフレームワークに興味がある方 生成AIを活用したい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば7Rフレームワークの特徴がわかるのはもちろん、AI時代での7Rフレームワークについて丸わかりですよ。 (more…)
オフショア開発は従来の「量」の補完から、しかし、生成AIの急速な進化によってその前提が大きく変わろうとしています。 今後は「どれだけ高い生産性を実現できるか」が重要です。 この記事ではそのようなオフショア開発のあり方の変化について見ていきます。 オフショア開発に興味がある方 社内のIT人材が不足している方 AIを使った開発に興味がある方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発の変化についてわかるのはもちろん、AI Nativeについても丸わかりですよ。 (more…)
近年、日本のIT業界では「2030年に最大79万人のIT人材が不足する」という予測が繰り返し語られています。 この数字は、日本社会のDX推進や企業のシステム開発を支える人材の不足を警告する象徴的な指標として広く認知されています。 しかし、2022年末以降の生成AIの急速な発展により、この予測の前提条件は大きく変化しています。 かつては人間が手作業で行っていたプログラミング、設計書作成、テストケース生成、ドキュメント作成、データ分析などの業務が、AIによって大幅に自動化され始めているためです。 その結果、「79万人不足」という予測を単純に受け入れるのではなく、「どのような人材が不足し、どのような人材の需要が減少するのか」という質的な観点から再検討する必要が生じています。 この記事では、生成AI時代におけるIT人材不足の構造変化を分析し、2030年に向けて求められる人材像について考察をしていきます。 生成AI時代が気になる方 IT業界の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば「2030年79万人IT人材不足」問題について、新しい見解とその対策がわかりますよ。 (more…)
長年運用されてきた基幹システムは、企業活動を支える重要な存在である一方で、技術的負債の蓄積、保守人材不足、クラウド対応の遅れ、ブラックボックス化など、さまざまな問題を引き起こしています。 従来のマイグレーションでは、既存システムの解析からコード変換、データ移行、テスト、カットオーバーまで、多くの工程を人手に依存していました。 こうした背景の中、注目を集めているのが「AIレガシーマイグレーション」です。 この記事ではAIレガシーマイグレーションについて、どんな特徴があるのかやその強みに着目をしていきたいと思います。 AIレガシーマイグレーションが気になる方 製造業の方 DXをすすめたい企業の方 これらに当てはまる方におすすめの記事となっています。これを読めばAIレガシーマイグレーションがどう言ったものかがわかるのはもちろん、DEHAのAIレガシーマイグレーションについてもわかりますよ。 (more…)