PHP関連のことを調べてみた2020年12月07日

PHP関連のことを調べてみた2020年12月07日

Laravelプロジェクト作成時に”Could not find package laravel/laravel with stability stable.”と出る

# 筆者の環境
– macOS Catalina バージョン10.15.6
– PHP 7.4.13
– Composer 2.0.8

# 発生問題
久しぶりに新規Laravelプロジェクトをローカルに作成しようと思い、いつも通りターミナルから以下のコマンドを打つと…

“`
$ composer create-project laravel/laravel laravel_sample –prefer-dist
“`

以下のエラーが。

“`
[InvalidArgumentException]
Could not find package laravel/laravel with stability stable.
“`

仕方がないのでlaravel/installerを使おうと思い、以下のようにlaravel/installerをインストールするコマンドを打つと…

“`
$ composer global require “laravel/installer”
“`

以下のエラーが。

“`
[InvalidArgumentException

元記事を表示

多言語化の対応を、PHP-Parserでコード置換&静的解析でサポートする話

こんにちわ。 [OPENLOGI AdventCalendar](https://qiita.com/advent-calendar/2020/openlogi) 6日目です。

オープンロジでは[昨年インドネシアで実証実験](https://corp.openlogi.com/news/20190515-indonesia/) を行いました。それにあたってシステムの多言語化行ったのですが、その際に利用した[PHP-Parser](https://github.com/nikic/PHP-Parser)の活用について少し紹介したいと思います。

# 前提
## Laravelの多言語の仕組み

“`php:lang/en/messages.php
‘Welcome to our application’,
];
“`

のような言語ファイルを用意し、

“`php
echo __(‘messages.welcome’);
“`

と記述することで、多言語の対応を行うことができます。詳しくは https://re

元記事を表示

【2020年版】明日話せる!PHP Weekly News 注目記事をご紹介!

# はじめに
皆さんこんにちは。[MasaKu](https://twitter.com/MasaKu_e)です。
ブラックフライデーでPCパーツを購入しホクホクしております。

[ラクスアドベントカレンダー](https://qiita.com/advent-calendar/2020/rakus) 7日目です。

# 今回執筆する記事について

今年、PHP関連のビックニュースとしましては、以下のようなものがありました。

* PHP誕生25周年
* PHP 8
* Larvel 8
* Composer 2.0
* Xdebug 3.0

また、世間的には新型コロナウイルスの流行による働き方改革が世界的に実施され、それの付随するテーマも大きく話題になりました。

私の情報収集源としては、Twitterやその他メディアから仕入れることが多いですが、今年一番の情報源になった媒体は [PHP: The Right Way](http://ja.phptherightway.com/) でも紹介されている [PHP Weekly News](http://www.phpweekly.co

元記事を表示

テンプレートエンジンを使ってコード生成

# はじめに
如何にしてコーディングを楽にするかを考えることは重要です。
DBスキーマと一対一で作成されているModelみたいな、同じような構造のファイルが並んでいるのを見るとコード生成をしたくなりますね。
そんなとき、自分はスクリプト言語とテンプレートエンジンを使ってちゃっちゃとコード生成スクリプトを組んでいます。

# 使用言語

色々なスクリプト言語はありますが、当記事では下記を使ったコード生成スクリプトについて記載しています。

– php
– twig(テンプレートエンジン)

# Twigテンプレートエンジンとは

軽量・高速なPHPのテンプレートエンジンです。
もとはLaravelなどのフレームワークと組み合わせてHTMLを吐き出すのに使います。(MVCでいうViewの部分)
Viewに渡された変数をView側で変換できる、「フィルター」という機能が便利で、簡潔かつ直感的にテンプレートファイルを記載することができます。
例えば標準フィルターとして搭載されている`upper`はViewに渡された文字列をすべて大文字にします。

“`
{# フィルター機能はbashにおける

元記事を表示

[自分用メモ]ローカルのXAMPP環境で複数サイトを制作する方法

### 0. やりたいこと
– PHP学習用にxamppをローカル環境に入れているが、デフォルトの設定だと複数のWebサイトの制作ができない。
そこで、複数サイト制作を可能にするために、「バーチャルホスト」の設定をして、複数のドメインを使う設定を行った。
本記事はその作業の際の忘備録として残しておく。

### 1. 環境
– Windows10
– xampp環境構築済み

### 2. そもそも「バーチャルホスト」って何?
#### バーチャルホストって何?
> Apache バーチャルホスト説明書 https://httpd.apache.org/docs/2.4/ja/vhosts/
> バーチャルホストという用語は、1 台のマシン上で (www.company1.com and www.company2.com のような) 二つ以上のウェブサイトを扱う運用方法のことを指します。

test1.comやtest2.com等、複数のドメインを運用していた場合、それぞれドメインごとにサーバを建てるのではなく、1台のWebサーバで複数のドメインのサービスを構築しよう!と

元記事を表示

laravelでゲストログイン機能を作成

今やポートフォリオには必須の機能とされているゲストログイン機能を作成しました

環境
PHP 7.3.11
Laravel Framework 7.29.3

今回はLoginControllerをいじっていきます

“`LoginController.php

//省略//

public function guestLogin() {
$name = ‘ゲスト’;
$password = ‘guestpass’;

if(Auth::attempt([‘name’ => $name, ‘password’ => $password])) {
return redirect(‘/home’);
}

return redirect(‘/’);
}

“`

Auth::attemptは引数に指定したレコードがDB内にあればtrue,そうでなければfalseを返す

今回は予めゲストログイン用のユーザーアカウントを作成しておき名前とパスワードをname,passwordに

元記事を表示

googleアカウントでログインする機能を実装した時のメモ

googleアカウントによるログイン機能の実装について紹介します。
通常のログイン画面にグーグルアカウント連携ボタンを追加しました。
GCPへの登録やグーグルAPIの勉強から、既存のDBへの書き込み作業等のデバッグでかなり苦労したので、メモ書きとして記録しておきます。

1.事前準備(GCPの登録)
まずGoogle Cloud Platformのページで左上の「Project」よりプロジェクトを作成を選択します。そのあと「OAuth同意画⾯の設定」に進み、「クライアントID」、「クライアントシークレット」、「URI」を設定します。
詳細は以下リンクを参照ください。
https://qiita.com/kmtym1998/items/768212fe92dbaa384c27

2.composerのインストール
※composerをインストールしておく必要があるので、composerの事前知識がない人は詳細を確認してください。1行目のコマンド(require ‘../../vendor/autoload.php’; )がgoogleAPIを読み込んでいて、今回のアカウント連携

元記事を表示

PHPで、あいうえお配列の取得 (簡単)

入力
(str_splitだとなぜか文字化けするので、このようにしないといけません。)

“`php

“`

結果

“`
array(46) { [0]=> string(0) “” [1]=> string(3) “あ” [2]=> string(3) “い” [3]=> string(3) “う” [4]=> string(3) “え” [5]=> string(3) “お” [6]=> string(3) “か” [7]=> string(3) “き” [8]=> string(3) “く” [9]=> string(3) “け” [10]=> string(3) “こ” [11]=> string(3) “さ” [12]=> string(3) “し” [13]=> string(3) “す” [14]=> string(3) “せ” [15]=>

元記事を表示

サーバーサイドとクライアントサイド

#この記事について
phpを勉強していた中で調べたサーバー、クライアントについて書きましたので私と同じような初心者の方の役に立てたら幸いです。
#サーバーサイドとクライアントサイド
それぞれの違いは**プログラムの実行場所がサーバーか端末かの違いです。**プログラムの実行場所とはいわゆる、コードがどこで処理されるかということです。アクセスしたサーバー側でプログラムを実行した場合サーバーサイドのプログラムと言い、アクセスした端末でプログラムの処理を実行した場合クライアントサイドのプログラムと言います。
では、各々の特徴を見ていきましょう。
#サーバーサイド

* まず1つ目は、**情報の保守性が上がることです。**サーバー側で動作しているのでクライアント側からでは基本的にソースコードを見ることができません。なので動作内容がわからないというのは、扱う情報の安全性が守られることにつながります。
* 2つ目は、**サーバー側で処理を行うのでデータベースに保存されているユーザー情報の取得や、新たに追加することが可能になるということです。**これらができることにより、ユーザーのアカウントの新規登録

元記事を表示

PHP基礎

Udemyで一通り学んだ内容のメモとして今回記載します。

#画面に文を表示

“`

“`
“`

“`

##echoとprintとの違い
・echoはカンマ区切りで複数の文字列を連結できるが、戻り値を返さない。
・printはカンマ区切りで複数の文字列を連結できずに1つの引数をとるが、戻り値を返せる。

#算術計算

“`

“`

#画面に現在の時刻を表示

###現在の時刻を表示

“`

“`

date — 現在の日付/時刻を書式化します。

###曜日を表示

“`

“`

###日本時間にする
“`

“`

※以下を参考
>https://

元記事を表示

PHPで作る加算器(足し算しかできない計算機)から学んだこと

毎日、プログラミングで色々と作っているウッタムです。今日は、昨日一応完成した「足し算しかできない計算機」から学んだことを、まとめてみました。近々「すべての機能を備えた計算機」を作りたいと思っているので、頑張ります!誤りがある可能性があるので、ご指摘お願いいたします!

![2020-06-11 6.58のイメージ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437473/97300e1f-76e4-bceb-b44a-83e6db232e73.jpeg)

##つまずいた点・気になったこと①【bodyタグ】

“`

元記事を表示

PHPで500エラーが出たら…対処する方法【エラー文を表示させる】

PHPにて複数のファイルを色々と管理するために作業していたら、500エラー(ファイルパスを間違ったなどが理由)が出ました…。どうしたらいいのか調べてわかったので、メモとしてまとめておきます。

##エラー内容を出力させよう

結論としては、まずエラーの理由を発見することです。

それは以下のコードを、読み込んでいるファイルの先頭に記述しましょう。

“`

元記事を表示

phpMyAdminのAI(オートインクリメント)とPDOの意味

phpを使った開発をしながらログイン機能を搭載するために、phpMyAdminおよびデータベースの利用に関する単語で分からなかったもの二つ(AIとPDO)を調べてみました!

##AI(オートインクリメント)

AUTO_INCREMENTを略して、**AI**と言います。

整数か浮動小数点数のデータ型のカラムに対して設定可能なもので、自動にてそれぞれのデータに固有の番号を割り当ててくれる。データ管理には欠かせない機能です。

**AUTO_INCREMENT**をカラムに設定する際、以下の二つを設定します。

– PRIMARY KEY(主キー)
– UNIQUE KEY(ユニークキー)

設定方法として、AUTO_INCREMENTとPRIMARY KEYの二つを利用して、連番を付けますね。

##PDO

『PDO』とは『PHP Data Objects』の略です。

PDOを使うにあたって、いろいろありますが、例として以下のものがあります。

“`
// エラーのリポート => 例外を投げる
PDO::ATTR_ERRMODE => PDO::

元記事を表示

filter_inputを使ってみて気になったこと

ユーザ登録機能を作成しながらfilter_inputの使用について学んだので、まとめてみました。

##filter_inputのメリット

容易にユーザが入力したこと、もしくは入力しなかったことを調査してくれる、素晴らしいメソッドです。

入力された値をチェックして、大丈夫なら変数に値を入れてくれるが、ふさわしくないものだったら弾いてくれます。

filter_inputを使えば、以前ならたくさんコードを記述しなければならなかった部分をすっきりとまとめられますね。

##filter_inputの使い方 + まとめ

下記のように記述します。

“`
filter_input ( 型 , 変数名, フィルタ, オプション);
“`

今後、何度も使って、サクッとfilter_inputを利用できるようになりましょう。

元記事を表示

Vueソーシャルシェアリングのバージョン指定

#vue-social-sharingのバージョン指定
“`java:ターミナル
npm i vue-social-sharing@2.4.6
“`
##@2.4.6の部分を好きなバージョンに指定するだけ!
##ver.3だとSNSアイコンが表示されない事が多いのでこちらのバージョンを指定するといけました!
#以上!

元記事を表示

更新処理は一回で!PHP ユーザー情報編集

どうも!Twitterの詩人でお馴染みのざんをですっ!
「PHPの画像処理ってなんであんなにややこしいんだろなぁ。ぴえん。。」
って思っているそこのあなた!
安心してください。履いてますよ!!
じゃなくて、、、今回はそんな不安を解消すべく私ざんをが一言コメントと画像処理を綺麗に場合分けして一回の更新処理で済ませる方法を紹介していきます笑

“`php:info.php
getmessage();
exit;
}
$sql = “SELECT * FROM members WHERE id = :id”;
$stmt = $dbh->prepare($sql);
$stmt->execute(arra

元記事を表示

AtCoder Typical DP ContestのA – コンテストを絵で理解してみたい(PHP)

AtCoderの[こちら](https://atcoder.jp/contests/tdpc/tasks/tdpc_contest)の問題に挑戦してみました。
https://atcoder.jp/contests/tdpc/tasks/tdpc_contest

“`html:入力例
3
2 3 5
“`

“`php:PHP
TRUE]);

foreach ($ps as $p) {
foreach ($ans as $k => $v) {
$ans[$k + $p] = TRUE;
}
}
echo count($ans) . “\n”;

“`
foreachの中でforeachを回して、中のforeachの配列は処理中に中身が増えていきます。よりイメージしやすいように絵

元記事を表示

AtCoderのRobot armsの問題を絵に描いて理解してみる(PHP)

区間スケジューリングというジャンルの問題らしいです。公式の解説だけでは、悲しいかな、僕には理解できなかったので、絵に書いて理解してみました。

問題は[こちら](https://atcoder.jp/contests/keyence2020/tasks/keyence2020_b)です。

#入力例

“`html:入力例
4
2 4
4 3
9 3
100 5
“`
#絵
こうやって絵に描いてみると「なんだそんなことか、確かにそりゃそうだよね」って感じになりました。
![IMG_4331.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/6b4fcc0b-8d32-851f-38fb-50f337e6aac3.jpeg)
1番目の一番右端と2番目の一番左端を比べていって、2番目の左端が1番目の右端よりも数字が小さければ、その2番目を取り除いていけばいいだけですね。

#コード
コードにするとこんな感じ。

“`php:PHP

元記事を表示

PHPの基本関数!切り分けたファイルを呼び出して使い回す方法

##はじめに
同じコードをそれぞのページにベタ書きしてませんか?

もし、その共通の部分の修正や変更があった場合、
ページ分だけ修正の作業が増え手間です。

その時に便利なPHPの関数があります。

共通の部分を別の「exammple.php」のようなファイルにして、
それを呼び出した方が完全に楽です。

修正があっても
「exammple.php」ファイルを編集するだけで全ページに反映されます。

##PHP関数
下記の2通りの方法です。

“`php:

“`

“`php:

“`

「include」か「require」関数を使います。

ファイルのパスのところは
ご自身の環境に合わせて下さい。

このコードを書くファイルから見て
どこに共通のファイルを置いたかで確認すればわかります。

元記事を表示

PHPの無名関数を使ってみた

### 無名関数とは?

公式ドキュメントの引用です。
>無名関数はクロージャとも呼ばれ、 関数名を指定せずに関数を作成できるようにするものです。 callable パラメータとして使う際に便利ですが、用途はそれにとどまりません。

https://www.php.net/manual/ja/functions.anonymous.php

### callableパラメータ
callableパラメータとしての使い方を見てみます。

“`php

元記事を表示

OTHERカテゴリの最新記事