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

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

PHPのThread Safetyが有効になっているかを調べる

###### tags: `php`

PHPには,スレッドセーフ版とノンスレッドセーフ版というのがある.

TS版,NTS版とか,PHP TS, PHP NTSとか呼ばれたりもする.

自分の環境で有効になっているかを確認するには,`phpinfo()`の出力や,`php -i`の出力を確認すればよい

> phpinfo()の結果を見るとわかる。Thread Safetyの項がenabledならスレッド・セーフ版、disabledならノン・スレッド・セーフ版である。
https://clover.fcg.world/2017/03/19/8093/#toc1

## 確認方法

### linux

linuxで確認する場合は以下.

“`
$ php -i | grep -i “thread safety”
Thread Safety => disabled
“`

### windows

windowsで確認するためには powershell で以下のように発行する.

“`
> php -i | Select-String -Pattern “Thread Safet

元記事を表示

sabre/dav

## インストール

* https://sabre.io/dav/install/

“`sh
composer require sabre/dav
# データの保存場所
mkdir -p /home/share/webdav/
chmod 700 /home/share/webdav/
# lockファイル用
mkdir data
“`

## 利用方法

“`php:/webdav/server.php
setBaseUri(‘/webdav/server.php’);

$lockBackend = new DAV\Locks\Backend\File

元記事を表示

【PHP】配列Aの並び順を正として、配列Bを並び替える

# 本記事の趣旨
PHPの配列について、備忘のためメモします。
誰かの何かの役に立てれば幸いです。

# 要件
配列A(以下”見本”)の要素の並び順を正として、配列B(以下”要並び替え”)の要素を並び替える。

ただし、
要並び替え配列の中身そのものを並び替えるのではなく、
要並び替え配列の各要素が見本配列に存在するか、をチェックしたうえで、
存在していたら、その要素は見本配列内では何番目にあるのか、という情報を取得し、
その情報をもとに、別な配列に要素を入れ直す。

**単純な配列の場合**

“`
$mihon = [“りんご”, “みかん”, ”バナナ”]; // 見本

$temoto = [“バナナ”, “りんご”, “みかん”]; // 要並び替え

$checked_array = []; // 並び替え後に格納する用の配列

foreach($mihon as $key => $fruit){
// 見本配列をループしつつ、要並び替え配列の$key番目の要素が、見本配列内に存在するかチェック
if(in_array($temoto[$key], $miho

元記事を表示

Laravel の FormRequest を全体的に、実態に近く自動テストする

## はじめに

Laravel の FormRequest のテストの話は rules() のテストだけなのが多いので、rules() 以外も含む FormRequest 全体を、より実態に近くテストする話をする

## テスト

以降は次を use する前提

“`php
use App\Http\Requests\HogeRequest;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
“`

全体なので FormRequest の passedValidation() や failedValidation() の実装の影響を受ける
以降はこれらがデフォルトの実装の前提。上書くときはその処理に従う。

### 成功することをテストする

FormRequest がサービスコンテナによる解決によって効果を得ることをテストする

“`php
public function testPass()
{
$attributes = [‘key’ => ‘value’];

元記事を表示

Read DoubleのComposerでLaravelインストールで躓いたところ

#Read DoubleのComposerでLaravelインストールで躓いたところ
プログラミング学習歴1年未満の初心者がLaravelをインストールするまでの道のり。
laravel公式(日本語ver)と言われる[Read Double](https://readouble.com/)だけではわからなかったため途中、調べたところを追加。

##使用環境(動作環境)
* windows10Home(COREi7)
* xampp7.3.18

##Composerシステム全体のvendor/binディレクトリを$PATHへ登録してくださいって何?
**$PATHへ登録する=PATHを通す=環境変数(環境パス)に登録する**
環境パスのことすらわからなかった(多分これまでも環境構築で設定してきたはず)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615830/5d7db8a4-e24d-c317-d6ba-4113a3662def.png)

###PATHを通すとは

>特定のプロ

元記事を表示

【PHP】単数系の英語を複数形に直す

PHPの初学者です。

作ったコードをQiitaに書く様にしていきたいと思います。

・末尾がs, sh, ch, o, x である場合英単語の末尾にesを付ける
・末尾がf, fe のいずれかである英単語の末尾の f, fe を除き、末尾に ves を付ける
・末尾の1文字がyで、末尾から2文字目がa, i, u, e, oのいずれでもない英単語の末尾の y を除き、末尾に ies を付ける
・上4つに当てはまらないものにはsを付ける

“` ‘children’,
‘crux’ => ‘cruces’,
‘foot’ => ‘feet’,
‘knife’ => ‘knives’,
‘leaf’ => ‘leaves’,
‘louse’ => ‘li

元記事を表示

ffmpegで動画を連結する備忘録

PHPから実行した際の備忘録。
連結する全動画の画角、コーデックが同じであること。

“`text:file_list.txt
file ‘/var/***/1.mp4’
file ‘/var/***/2.mp4’
file ‘/var/***/3.mp4’
file ‘/var/***/4.mp4’
file ‘/var/***/5.mp4’
“`

“`php
# 動作確認済み
$cmd = “ffmpeg -f concat -safe 0 -i {file_list_path} -c copy {output_local_path}.mp4”;
system($cmd);

# こっちは未テスト
$cmd = “ffmpeg -f concat -safe 0 -i {file_list_path} -c:v copy c:a copy {output_local_path}.mp4”;
system($cmd);
“`

* -f concat
* 連結指示
* -safe 0
* file_list.txt 内でファイルパスを絶対パスで指定する際に必

元記事を表示

Laravel 6 画像のアップロード

#環境
・Laravel 6.18.43
・PHP 7.3.11
・ブラウザ:クローム

#画面構成

##フォーム
ファイルと商品名を入力します。

|![スクリーンショット 2020-11-20 14.07.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620908/f293d1ec-514a-77c8-067d-1d72eb0d97e9.png)
|:-:|

##確認画面
確認画面を表示します。
input->confirmの際に一度Storage/app/public内のtempディレクトリに仮保存し、
confirm->completeの際にStorage/app/public内のproductImageディレクトリに移動します。

|![スクリーンショット 2020-11-20 14.17.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620908/2dc122cb-5639-fa1

元記事を表示

laravel/ui ログイン後のリダイレクト先変更方法

特に解説はありません。

app/Providers/RouteServiceProvider.phpを開き

HOMEプロパティに格納している値を変更

“`php:RouteServiceProvider.php
…..
class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to your controller routes.
*
* In addition, it is set as the URL generator’s root namespace.
*
* @var string
*/
protected $namespace = ‘App\Http\Controllers’;

/**
* The path to the “home” route for your application.
*
* @var string
*

元記事を表示

Local by flywheel で、admin押したらThis site can’t be reachedが出る。

現在存在するwordpressのローカル環境構築方法で一番簡単なのは、Local by flywheelだと思うのですが、手持ちのMac(OS 10.13.6)だと、This site can’t be reachedというエラーが出てしまって、管理画面にもサイト画面にもアクセス不可の状態でした。

Local by flywheelはまだ新しいからか、ネット上にある解決方法も少なめ。

検索能力が低めなので、ググってもしても、Local by flywheelのおすすめ記事にしか到達できず、質問コミュニティでヘルプを求めたところ、etc/hostsファイルをチェックしろとの助言をいただいた。

# やった事① etc/hosts を確認

って思ったので、とりあえずそのままにググる。
「ホスト名とIPアドレスを対応させるためのファイル」らしい。

Macの場合はterminalを開いて、以下コマンドを実行すれば中身が見れる

`$cat /private/etc/hosts`

その中に以下のようなLocal by Flywheelの表記があればhosts の更新はできているらしい。

元記事を表示

Laravel8 CRUD処理を使った投稿アプリを作成する その10 URLをリンク化する

# 目的

– 投稿内容の文字列中にURLがあったときにリンク化する方法をまとめる

# 実施環境

– 筆者の実施環境を記載する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする]() |
| Laravel バージョン | 8.6.0 | commposerを用いてこちらの方法で導入→[Ma

元記事を表示

ほぼ未経験Webエンジニアが入社半年でしたことまとめ(2020/11)

#言語

・PHP
・HTML
・JavaScript
(・MySQL)

#やったこと

・Web開発用の開発環境構築(XAMPP設定など)(なんだかんだ3,4回した気がする)
・変数や配列など基礎的な内容を理解
・Ajax勉強
・オブジェクト指向の勉強
・セキュリティ少し学んだ
・DBについて少し学んだ
・より良いコードが書けるようにリーダブルコードを読んだ
・リーダブルコードを英語で読みたいと思い、原書を購入(まだ読んでない…)
・mapboxのチュートリアル的なページを確認
・HTMLとJavaScriptにmapboxAPIを組み合わせて、マップ情報を活用したHTMLファイル作成(指定場所の面積計算など)
・エンジニア数十人が書いたエッセイ集みたいな本を買って読んだ
・メルカリ創業の本を読んだ(サクセスストーリー感があって非常に面白かった)
・kotlinとswiftをすこし内容みてみた
・UdemyでswiftとJavaScriptのコース(英語)を受講(現在進行中)

#感想
・幅広く興味を持っていい経験ができた気がする
・mapboxに触れられたのはよかった
・Udem

元記事を表示

composer requireがメモリ不足で失敗しないために

## この記事の目的

パッケージ間の依存関係の解消に
メモリを多く消費するパッケージ ( 筆者が遭遇するケース:[Larastan](https://github.com/nunomaduro/larastan) ) を、

デフォルトの設定 ( 通常使用時には上限128MB[php.ini],
Composer使用時には上限1.5GBまで拡張される ) のまま、

インストール(composer require)を試みると、
次のように標準エラー出力されます。

“`sh
Fatal error: Allowed memory size of 1610612736 bytes exhausted
(tried to allocate 4096 bytes)

Check https://getcomposer.org/doc/articles/
troubleshooting.md#memory-limit-errors
for more info on how to handle out of memory errors
“`

エラー文に書いてある[Composer公

元記事を表示

[Laravel] コードをコミット時に自動整形する

#やりたいこと
複数人で開発時に、フォーマットを統一したい。
自動整形するやつ入れても実行し忘れるので、コミットのタイミングで何も考えることなく整形できるようにしたい。

#やりかた

`brainmaestro/composer-git-hooks`というパッケージを使うと、git hook(`gitの特定タイミングで色々できる`)を簡単に使える

そして`friendsofphp/php-cs-fixer`を使うと、コードの規約違反を指摘/修正してくれる

まずはインストール

“`bash
composer require –dev brainmaestro/composer-git-hooks
composer require –dev friendsofphp/php-cs-fixer
“`

つぎに設定
`composer.json`の`extra`に`”hooks”`を追加
`pre-commit`をフックに、`php-cs-fixer`を使って自動フォーマットする。

“`composer.json
“extra”: {
“laravel”:

元記事を表示

Intercomの会話データぜんぶ抜く

# TL;TR

https://gist.github.com/YoshiteruIwasaki/3edd71eb1d968fcfa4c56ef7a0bcfbd8

からファイルをダウンロードする。

` ` の箇所を書き換える。

IntercomのPHPのSDKを同じ階層にcomposer経由でダウンロードする。

“`
composer require intercom/intercom-php php-http/guzzle6-adapter
“`

以下のコマンドで実行する。

“`
php index.php
“`

# 解説

IntercomのAPIを純粋に片っ端から叩いてデータを集めてきて最後に配列にして1行ずつCSVに書き出しています。

Intercomの画面上から会社やユーザー情報はCSVエクスポートできます。
会話のデータもエクスポートできますが、過去2年分でサマリーのみになるため、細かな会話のやり取りを出力するにはAPIを使う方法しかありません。(個々の会話の画面から plain text でダウンロードするボタン

元記事を表示

PHPで敷居の高い掲示板作ってみた

# はじめに
 前回、[PHPで敷居の高い掲示板を作ってみた ~概要編~](https://qiita.com/mimuro_syunya/items/72a4f943c9b3bc88365c)を書いてみたんですが、もっと詳しく書きたくなってきました(^^♪
なので、シリーズ化しようと思うのですが、項目がたくさんになりそうなので、リンクがまとまった記事を作っておきたいと思います。

# この記事について
 この記事では、基本的にPHPのみによる「敷居の高い掲示板」の作り方を書いていこうと思います。敷居の高い掲示板とは、

メールアドレスの認証が絡んだ掲示板

であって、会員登録とかログインとかをせず投稿出来る手軽さと、管理者による投稿内容の管理がしっかりできるWEBアプリケーションです。

# おしながき
以下に、各記事のリンクを張っていきます。ちなみに、0から100まで説明する気は無いです。重要だと思う事と、自分で考えた仕組みの中で記事にしておきたいもののみを書いていきます。

全部できる気がしませんが、気長に頑張りたいです(;^ω^)

1. 概要編・・・[PHPで敷居の高い掲示板

元記事を表示

可変変数と可変関数 (PHP)

## 可変変数
変数を要いて、変数を動的に変える。

“`php
class ClassName
{
private $hoge = ‘ほげ’;
private $fuga = ‘ふが’;

public function say(string $name = ‘hoge’)
{
echo “{$this->$name}です。よろしく。”;
}
}

$class = new ClassName;
$class->say(‘hoge’); // ほげです。よろしく。
$class->say(‘fuga’); // ふがです。よろしく。
“`

## 可変関数
動的に呼び出す関数(メソッド)を変える。

“`php
class ClassName
{

private $hoge = ‘ほげ’;
private $fuga = ‘ふが’;

public function say(string $name = ‘hoge’)
{
$method = “say$name”;

元記事を表示

paiza攻略 よく使うもの一覧(スキルチェックD〜Cランク) ~PHP~

## はじめに
この記事ではpaizaのスキルチェック(PHP)で僕がよく使ったものを一覧にしてまとめています。
主にDランク・Cランクの問題を解くことを想定していますので、参考になれば幸いです。
また間違っている箇所などありましたらご指摘いただけると幸いです。
随時更新していく予定です。

## 基本系

#### trim
文字列の先頭および末尾にあるホワイトスペースを取り除く。
改行された値をそれぞれ「配列」にするために使う。
※paizaではほぼ無条件で入れると良い。

“`php:PHP
$input_line = trim(fgets(STDIN));
“`

#### explode
” “で指定したもの(ここでは半角スペース)で文字列を分割して「配列」にする関数。

“`php:PHP
$input_line = fgets(STDIN);
//$input_line -> “250000 3″
$arr = explode(” “,$input_line);
//$arr -> [“250000″,”3”]
“`

###

元記事を表示

laravelで画像を再度指定せずに編集可能な機能を作成

初投稿です。これからプログラミング学習のアウトプット始めていこうと思います。

世の中のサイト(主にSNS)ってユーザーアカウントにアイコン(画像)が設定可能ですよね。
それを編集するときアイコン以外(名前、プロフィール等)だけ編集してアイコンはいじらない場合、アイコン画像はそのまま変更なしでプロフィールの変更ができます。
でも自分でlaravelでサイトを作ってみて気づいたのが画像に対してはoldヘルパーが適用されずどうやったらその機能を実現できるのかという点です。

今回自分なりに思いついた実装方法を紹介していきます。

#ルーティング

“`php:web.php
Route::get(‘/posts/edit/{post}’, ‘PostsController@edit’);
“`

暗黙の結合を使って編集ページにpostsテーブルからカラムを持っていきます
今回画像のカラム名はpathになります。

#if文を使って実装できた

“`php:PostsController@edit
public function update(Request $request,

元記事を表示

~全パターン~ 【php用】47都道府県の配列(連想配列)

# どうも7noteです。ほぼ自分用メモです。

漢字ひらがなローマ字等、「県」のアリナシなどよく使われる全表記パターンの配列を用意。
**順番は北から順**(都道府県番号順)になっています。

***!!! 目次の利用を推奨 !!!***

**目次**

> – 1次元配列(普通の配列)
– ひらがな
– カタカナ
– 漢字(★)
– ローマ字(★)
– 2次元配列(連想配列)
– キーが[数字]
– [数字]=>ひらがな
– [数字]=>カタカナ
– [数字]=>漢字(★)
– [数字]=>ローマ字(★)
– キーが[ひらがな]
– [ひらがな]=>ひらがな
– [ひらがな]=>カタカナ
– [ひらがな]=>漢字
– [ひらがな]=>漢字 (不一致版)
– [ひらがな]=>ローマ字
– キーが[カタカナ]
– [カタカナ]=>ひらがな
– [カタカナ]

元記事を表示

OTHERカテゴリの最新記事