平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【PHP】配列の要素を半角スペース区切りで出力させる(implode)

今回のテーマ

表題の通り配列要素をimplodeメソッドを使用して半角スペースで出力させる

implodeの使用方法

implodeメソッドは配列要素を指定した文字列で結合させるメソッドです。
第一引数に文字列を入力し、第二引数に配列を入力する。
以下の例では半角スペースを指定して配列要素を順番に出力させています。

$array =array('apple','orange','grape');
$a=implode(" ",$array);
echo $a;

// 出力結果
apple orange grape

半角スペースを"+"という文字列にすると+で区切って文字列を出力します。

$array =array('apple','orange','grape');
$a=implode("+",$array);
echo $a;

// 出力結果
apple+orange+grape
参考

PHP: implode - Manual

【PHP】APIのアクセスキーなどをGit Hubに送信しないよう対策(.envに記載)

今回のテーマ

LaravelにてAPIを実装した際にAPIを使用するための
アクセスキーを記載したのだが、Git Hubにもれるのはまずいので
.envファイルに記載する方法があったので備忘録として残す。

対策

例えば今回は以下のように記載しました。
フレームワークはLaravelです。
POSTCODE_API_KEYは任意の名前です。

.env

POSTCODE_API_KEY="アクセスキー"

実際に「アクセスキー」の値を持ってくるには以下のような 記載をする。

$api_key=env('POSTCODE_API_KEY');

まとめ

.gitgnoreというGit Hubに送信しないファイルが記載されている
ファイルに基本デフォルトで今回の.envが設定されているので
今回はこのように対策をした。

【PHP】文字列の中から特定の文字をカウントする(mb_substr_count)

今回のテーマ

今回はPHPにて文字列の中から特定の文字をカウントする
mb_substr_countメソッドについて備忘録として残す

使用方法

使い方はシンプルです。
文字列の中から文字aがいくつあるかを表示している。
下記例ではaの数5を出力しています。

<?php
$a="aaaaabbbbb";

echo mb_substr_count($a,"a");

// 出力結果
5
?>

マニュアル通り、第一引数に探したい文字列
第二引数にカウントする文字を入力します。

mb_substr_count(探したい文字列,カウントする文字);

参考

PHP: mb_substr_count - Manual

【PHP】[Laravel]モデル同士のリレーションを定義しよう

今回のテーマ

Laravelにてテーブル同士のリレーションを定義する際に
記載する方法を記載します。

環境

Laravel:5.5.50
PHP:7.3.11

条件

今回はpost(投稿)、users(ユーザ)の関係を考える。
・post(投稿)は固有のusers(ユーザ)がしたもの
・users(ユーザ)はそれぞれ複数post(投稿)することができる

post(一)-users(多)の関係と考えることができる

設定方法

それぞれのモデルに以下のように設定する。
belongsTohasManyメソッドをそれぞれのモデルに記載する。

// Post.php 投稿
public function users(){
        return $this->belongsTo('APP\User');
    }

// User.php ユーザ
public function posts(){
        return $this->hasMany('App\Post');
    }

まとめ

設定方法は簡易ですが、一対多、一対一、多対多なのか関係を
見極めるのが重要になるかと思います。
これに関してはE-R図に書くとわかりやすいので、関係を考える際は
活用して、しっかり設計できるようにしたい

参考

Eloquent:リレーション 5.5 Laravel

【PHP】バージョンを指定してLaravelのプロジェクトを立ち上げよう!

今回のテーマ

Laravelをcomposerを使用して作成しようとすると最新バージョンで
作成されますが、古いバージョンで作成したいって時に
コマンドどうすればよかったかなと・・
備忘録として残します。

作成コマンドを見てみる

通常通りに作成

testsampleという名前のプロジェクトを作成します。
基本コマンドは以下です。

composer create-project laravel/laravel testsample

バージョン確認してみると、ver 8.21.0で作成されていることがわかります。

// プロジェクトに移動
cd testsample

// バージョン確認
php artisan -V

// 出力
Laravel Framework 8.21.0

バージョンを指定して作成する

今度は5.5のバージョンを指定してインストールします。
バージョン指定時は"laravel/laravel=バージョン"とする必要があります
バージョン指定時に6.xとすれば6.X系のバージョンもインストールできます

composer create-project "laravel/laravel=5.5" testsample
// プロジェクトに移動
cd testsample

// バージョン確認
php artisan -V

// 出力
Laravel Framework 5.5.50

まとめ

バージョン指定時は"laravel/laravel=バージョン"をつけてコマンドを実行することを忘れずに

バージョンによっては動かないライブラリなどもあるようなので
バージョンの確認は都度忘れないようにしないといけないですね

【PHP】[メモ]数値の絶対値を取得しよう(abs)

今回のテーマ

PHPで絶対値を取得したい時使うabsメソッドについてメモ
簡単なのでさらっとメモ

absメソッドを使う

マイナスでも数値だけ取りたいなーと思って調べると
シンプルにabsメソッド1つでできることがわかりました。
小数値にも使用できるようです。

<?php

echo abs(-5); 

// 出力結果
5

?>

参考

PHP: abs - Manual

【PHP】Laravel にてテーブル名を変更したい!

今回のテーマ

Laravelにてマイグレーションファイル作成時に名称を間違えてしまい テーブル名を変更したい時の手順を記載します。

環境

Laravel 8.20.1
PHP 7.3.11

目次

  • テーブル名変更するまで
  • まとめ

テーブル名変更まで

1 まずは当然マイグレーションファイルをロールバックする

php artisan migrate:rollback

2 変更するためのマイグレーションファイルを作成する

ここではitemsという名称からcartsというテーブルに変更するように
以下のコマンドをうつ

php artisan make:migration rename_items_to_carts_table
3 作成されたマイグレーションの書き換え

作成されたマイグレーションファイルのメソッドを
Schemaクラスのrenameメソッドに書き換える。 変更前は別のメソッドの記載があるので注意

※変更前は以下のようなメソッド
Schema::table('carts', function (Blueprint $table)

use Illuminate\Support\Facades\Schema;

// 中略

public function up()
    {
        Schema::rename('items','carts');
    }


public function down()
   {
       Schema::rename('carts','items');
    }
// rollbackされた場合は元の名前に戻すためupメソッドとは逆の記載になる

まとめ

新しく作成されたマイグレーションファイルのメソッドを書き換えないと
思わなくてそのままマイグレーションしてしまったので、認識しておきたいです。

以下のドキュメントを参考にしました。

マイグレーション 8.x (再翻訳中)Laravel