PHP関連のことを調べてみた2022年02月01日

PHP関連のことを調べてみた2022年02月01日

[laravel]php artisan migrate が通らないときの解決例

## エラー内容

“`
$ php artisan migrate
Migrating: 2022_01_29_163203_create_projects_table

Illuminate\Database\QueryException

SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘projects’ already exists (SQL: create table `projects` (`id` bigint unsigned not null auto_increment primary key) default character set utf8mb4 collate ‘utf8mb4_unicode_ci’)

at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
708▕ // If an exception occurs when attempting

元記事を表示

PHPファウンデーションの最新情報 2022年1月

先日[PHPファウンデーションが発足](https://qiita.com/rana_kualu/items/eaf97694f25a62f93a7e)しましたが、その後どうなったでしょうか。

以下は、2021年1月の経過報告、[The PHP Foundation Update, January 2022](https://opencollective.com/phpfoundation/updates/the-php-foundation-update)の日本語訳です。
著者のRoman Pronskiy( [Twitter](https://twitter.com/pronskiy) / [GitHub](https://github.com/pronskiy) / [Webサイト](https://pronskiy.com/) )はJetBrainsのえらい人です。

# The PHP Foundation Update, January 2022

`

元記事を表示

【Laravel 8】ユーザー真偽をして表示/非表示

# はじめに
– Laravel 初学者の私が学習した内容をアウトプットしていく記事になります。
冗長している点や軽い書き方などあれば御指南をお願いいたします。。。?

# ユーザー真偽をして表示/非表示
– 実装する内容
今回は、ユーザー自身のポートフォリオを[Bootstrap tab](https://getbootstrap.com/docs/5.1/components/navs-tabs/)を使用して、ユーザー自身のマイページならタブを表示 / 他ユーザーのページに行ったらタブを消す仕様です。

# 詰まったこと
– 条件をどう分岐させるか的を得てない。
今回の解決策はこれ!URL の id と ログインユーザーが一緒なら ture
URL に注目していなかった。根本的にロジックが立てられていない状態なので、そこに着眼点を置くことができていませんでした。

“`php
if (Auth::id() === $user->id)
“`
「訪れているページが自分か他人か」 このロジックが今回は正解でした。
今思えば、なに詰まることが事があるんだと恥ずかしくなります。
該当コ

元記事を表示

recoverメソッドに感動した話(CakePHP2のTreeビヘイビアについて)

この記事では、CakePHP2のTreeビヘイビアに搭載されているrecoverメソッドの実装例とすごさを記述します。

# はじめに
世間的にはもう役目を終えつつあるCakePHP2ですが、最近実務で触る機会がありました。

Treeメソッドを使用したテーブルにレコードを追加するという業務をこなす中で、recoverメソッドに出会い感動しました。

もしかしてまだ使用したことがない人もいるかも、と思いましたので共有させていただきます。

# Treeビヘイビアって何?
データベースのテーブル内のレコードに対し、階層構造を作る仕組みです。

下記のような構造を同一テーブル内で実現できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238817/74e99496-45cf-b374-8574-6fa04b1e688d.png)

詳細は公式ドキュメントを参照ください。
https://book.cakephp.org/2/ja/core-libraries/behaviors/tre

元記事を表示

PHP forの多重ループ

繰り返し処理の際にforを使用していて処理が分かっていなかったため調べたときの備忘録です。

“`
for($i = 0; $i < 3; $i++){ for ($j = 1; $j < 4; $j++) { echo $i . $j . " "; } } //出力:01 02 03 11 12 13 21 22 23 ``` ####1.1番大きなfor分の処理が始まる。$i = 0 ####2.中のfor分の処理が始まり、この処理が終わるまで表示が繰り返される。$j = 1から3まで ####3.2までが終わると1の$iに1が足され同じ処理が繰り返される。$i = 1 一番大きなfor文の中の処理が終わりきると一番大きなfor分が次の繰り返しに移るってことなんですが、わかりやすく書けなかったです。 語彙力もつけたいです。

元記事を表示

paiza問題集:5以上の整数の合計

「5以上の整数の合計」の私なりの回答です。

“`
= 5){
$result += $tmp[$i];

}
}

echo $result;
?>
“`

元記事を表示

March文系3年次編入生のエンジニア就活

こんにちは!初投稿です。

プログラミングを勉強するにあたって、Qiitaで記録をつけていくことにしました。

自分の経歴は、大学二年生で英語の勉強のみしてきました。(TOEIC 745点)

プログラミングの勉強の初めは、web制作の勉強をしていましたが、エンジニアの方々に相談した結果、サーバーサイドエンジニアを目指そうと方向転換しました。

現在は、ProgateのPHPを学習しているところです。かなり難しい内容ですが、慣れるまで食らいつきます。

これから、同じ境遇の方々や、エンジニアの方たちをみて学習していきたいです。よろしくお願いいたします。

元記事を表示

SQLSTATE[HY000] [2002] Connection refused が出た時の対処方法

###エラー内容

このような内容でした

“`terminal
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = ‘BASE TABLE’)

at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
708▕ // If an exception occurs when attempting to run a query, we’ll format the error
709▕ // message to include the bindings with SQL, which will make this exception a
710▕ // lot

元記事を表示

【WordPress】WordPress から DB を操作する

今回は WordPress からDB(データベース)にアクセスして UPDATE と INSERT 処理を行う方法をご紹介します。
また UPSERT 処理(UPDATE + INSERT)を行う方法についても合わせてご紹介します。

## 環境
WordPress: 4.9.19
PHP:7.0.27
MySQL:5.6.38

## DB設計
今回扱うサンプルのテーブルを作成します。
このテーブルでは学生の情報(名前、メールアドレス、学年)を管理することとします。
“`session_id“` は UPDATE 処理を行う際にキーとして用います。

“`
CREATE TABLE wp_test (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘ID’,
name VARCHAR(30) NOT NULL COMMENT ‘名前’,
mail VARCHAR(30) NOT NULL COMMENT ‘メールアドレス’,
grade TINYINT(3) UNSIGNED DEFAUL

元記事を表示

DockerでPHP(Laravel)+ nginx + MySQLのLEMP環境を構築する

## 概要
Docker, Docker Compose を使って、`PHP(Laravel) + nginx + MySQL`の`LEMP環境`を構築する記事です。

検索するとDockerfileやdocker-compose.ymlの書き方については色んな方が記事を書いてくださっていて、動く環境を作ること自体は難しくありませんでした。

ですが、筆者はひとつコンテナを作っては動作確認していくという過程を経てすごく理解が深まったなと思うので、ファイルの書き方だけでなく動作確認したことやその結果を含めて記事に残しておきたいと思います。

↓ 完成後のリポジトリはこちらです。

https://github.com/hinakonagao/laravel_docker_sample

# 全体像

最終的なディレクトリ構成は以下の通りです。

全コンテナを管理するdocker-compose.ymlがトップレベルにあり、同じくトップレベルにあるdockerディレクトリ配下に各コンテナのDockerfileや設定ファイルを置いています。

“`:tree
docker_sample/

元記事を表示

error_reportingディレクティブ

# error_reporting ディレクティブとは

phpinfo() を実行すると、 error_reporting ディレクティブという設定値が整数値として表示されます。
この error_reporting ディレクティブは、エラー出力レベルを設定するもので、以下のエラーの種類それぞれについて、どのエラーを出力するかを 16ビットのビットマスクで構成し、10進数で表したものとなっています。

| 設定値 | 定義済み変数 | 説明 |
| —–: | ——————- | ——————————————————————– |
| 1 | E_ERROR | 重大な実行時エラー。 |
|

元記事を表示

MacをMontereyにアップデートしたらAlfredTweetが動かなくなった

# 環境

– Mac: Monterey
– Alfred3

# 解決策

1. Alfred4.6にバージョンアップする
1. phpをInstallして動かす

## 1.Alfred4.6にバージョンアップする

公式の解決策はこれ。
PowerPack使ってるから買い直さないといけないので却下したので、試していません。

>If you install PHP (eg via homebrew ), most PHP-based workflows will continue to work without an issue, as the workflow script objects in Alfred 4.6 have been updated to be aware of alternative bin paths.

PHPをインストールした場合(たとえば、homebrewを介して)、Alfred 4.6のワークフロースクリプトオブジェクトが代替のbinパスを認識するように更新されているため、ほとんどのPHPベースのワークフローは問題なく機能し続けます。

htt

元記事を表示

Laravelアプリをgit cloneした後にやったこと

#前提

MacOS バージョン11.2.3
CPU Apple M1

—–

git/github
MAMP
VScode

以上、インストール済み

“`
% node -v
v14.17.5

% npm -v
6.14.14

% laravel -v
Laravel Installer 4.2.9

% php -v
PHP 8.1.1
“`
他に思い出して気が向けば追記します。

#git cloneの方法

まずはgit cloneです

“`
ターミナル
cdコマンドで入れたいファイルに移動
% git clone https//<クローンしたいURL>.git

Cloning into ‘〇〇’…
Username for ‘https://github.com’: <自分のgithubのuser名>
Password for ‘https://tsunodayuki0302@github.com’: <パスワード(ターミナルには表示されません)>

成功したら↓
remote: Enumerating objects: 2754, done

元記事を表示

paiza PHP 指定範囲の大文字化

paizaの問題集を毎日解いているのでそこでの学習内容を書いていこうと思います。
回答とは違う手順だったので参考にするくらいにしてもらえると嬉しいです。

####問題
与えられた文字列のなかで指定された範囲を大文字にする。

paizaの場合、標準入力からの値の取得をしないといけないのですが今回は下記のようにしました。

“`
$s = “It’s nice to meet you.”; //与えられた文字列
$a = 6; //始まりの番数
$b = 11; //終わりの番数
“`

次に文字列の数だけ処理を回したいので、文字数を数えます。
大文字に変更後の文字列を入れるために空の変数を用意します。
文字列を一文字づつの配列にします。

“`
$n = mb_strlen($s);// 出力:22
$ans = “”;
$array_s = str_split($s);//文字列を一文字づつ格納
“`

次に繰り返し処理を行っていきます。

“`
for($i = 0; $i < $n; $i++)//文字の数だけ繰り返す { if($a - 1 <= $i &&

元記事を表示

TechTrain技術スタック紹介と作り手としての市場に思うこと

# はじめに

[TechTrain](https://techbowl.co.jp/techtrain)でエンジニアをしているスーです。
Twitterはこちらで、DMなど気軽にしてもらって大丈夫ですw

一緒に働くエンジニアを探している中、今までちゃんとした記事として、ZennのようなプラットフォームにTechTrainの技術スタックを投稿したことがなかったなと思い立ち、この記事を書いています。

# 開発体制

弊社では現在次のような体制で開発しています

1. フルタイム社内エンジニア1名(僕)[何でも屋さん]
2. インターン生4名
フロントエンド: 2名
バックエンド: 2名

全員ほぼフルリモートで開発をおこなっています。
(なんならインターン生のうちの一人は1年以上働いてくれているのに一度もオフラインであったことがありませんw)
現在進行中の開発で使用されている技術スタックについてご紹介します。

# サービス紹介

U30をメインターゲットとした、エンジニアとしての「実力を一段上に」なってもらう

元記事を表示

Laravelで用意したファイルを使ってテストする

## はじめに
CTIのサービスに携わっている為、音声ファイル関連の機能に関わる事が多く自動テストで音声ファイルを扱う機能をカバーしたいと考えていました。
初期実装では、“`UploadedFile::fake()“`を利用して以下のようにダミーデータ作り対応していました。

“`php
use Illuminate\Http\UploadedFile;

$record_file = UploadedFile::fake()->create(
name: ‘record-file-sample.wav’,
mimeType: ‘audio/x-wav’
);
“`
しかしダミーデータでは、ファイルサイズチェックなどの一部メソッドのテストが上手くいかなかった為(この辺りの調査は必要かもしれない)、自分で用意したテストデータを持つファイルをPOSTする方法を調べたのでまとめておきます。
## 環境
“`
Laravel8系
“`
## 実装方法
### 1, テスト用の音声ファイルを用意する
今回はテスト

元記事を表示

【初心者】Cloud Spanner With Laravelのローカル環境構築

# 概要

自分のメモ用にローカルにCloud Spannerを立て、PHP(Laravel)から操作する手順をまとめました。
なるべくそのまま使えるように記載したつもりですが不明な点があれば、コメントいただければと。
Spannerは1ノードでもお高いと聞きますし、とりあえずPHPで検証してみたいっていう方のお役にも立てたら嬉しいです!
※今回の環境構築は、Docker Desktop for Mac上で行っています。

# ローカルのSpanner環境の構築

以下ブログの通り、githubからcloneしてきて、`docker-compose up -d`するのみw
ローカル環境用のdocker-composeを公開してくれている方と、wrenchを公開しているメルカリの方に感謝です!!

[Cloud Spannerのローカル開発環境をdocker-composeでサクッと立ち上げる | フューチャー技術ブログ](https://future-architect.github.io/articles/20210323/)

# Laravel環境構築

今回は普段良く利用してい

元記事を表示

Chromeのページネーションと同じ動作するページネーションが実装できたっぽい

####ページネーションを作ったきっかけ

PHPでページネーションを自作せよ!という課題が出ました。

簡単なページネーションのやり方はネットに大量に上がってるし、何か自分で考えた機能を一つ持たせてみたいと思い、参考にできるアイデアを探しがてらChromeのページネーションをポチポチしていると
「Goooooooooogle」という風に「o」がページの数だけ連続して、表示されているページの部分だけ赤くなるのが面白かったので、Chromeのページネーションを実装できるかチャレンジしてみたところ、とりあえずは実装できたっぽいので、記録として記事にしておこうと思いました。

##実装

まずページネーションで表示するページ数と1ページあたりのリソース数を定数で持ちます。

“`php
// ページネーションで表示するページ数
const RANGE = 10;

// 1ページに表示するリソース数
const ITEM_COUNT = 5;
“`

クエリパラメーターからページ数を取得し、ページング対象リソースの件数をSQLを発行し取得します。(SQLの記述は省略しています)

“`

元記事を表示

「アプリケーションサーバ??」となったPHPerのお話

# はじめに
業務でアプリケーションサーバについて調べる機会があったので、備忘録としてまとめたいと思います。
バックエンドの言語の中でPHPしか触ったことがないので、アプリケーションサーバについて全く知りませんでした(言い訳)。

# アプリケーションサーバ(APサーバ)とは
アプリケーションを実行するためのサーバのことです。
詳細は[こちらの記事](https://kitsune.blog/ap-server-summary)からお願いします。この記事を読むと

* Web三層構造システム
* APサーバとWebサーバの違い
* PHPは、なぜAPサーバがなくても動くのか

が理解できます。そして、これらを中心に検索すると面白い記事がたくさん出てきます。

### WebサーバとAPサーバの分離について
https://ja.stackoverflow.com/questions/18417/web%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a8ap%e3%82%b5%e3%83%bc%e3%83%90%e3%81%ae%e5%88%86%e

元記事を表示

【pythonメモ】回数指定のfor文(for .. in range)の使い方

#1.はじめに

様々なプログラミング言語で使われるforループ。
pythonでは回数指定のforが3種類ある。
今更だけど、どうにも使いずらいので自分用のメモとしてまとめてみた。

#2.実行環境
OS:windows10
Python 3.8.10(jupyter notebook上で実行)
PHPはpaiza.ioで実行

#3.for .. in range

###`パターン1)for 繰り返し変数 in range(N1)`
N1:指定回数
指定回数だけある処理を実行したい場合使える。

“`python
for i in range(5):
print(“Loto6”)
“`
“`:出力結果
Loto6
Loto6
Loto6
Loto6
Loto6
“`
ただし繰り返し変数も利用したい場合は、その値は__0~N1-1__となることに注意が必要になる。

“`python
for i in range (5):
print(“Loto6トライ:”+str(i)+”回目”)
“`

“`:出力結果
Loto6トライ:0回目
Loto6トライ:1回目

元記事を表示

OTHERカテゴリの最新記事