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

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

Docker x Laravel めちゃくちゃ遅い Docker for Mac を爆速化する

## Docker for Mac 遅い問題

– [Macのdockerが遅いストレスから解放されよう](https://qiita.com/ysKey2/items/346c429ac8dfa0aed892)
– [DXを大幅に低下させるDocker for Macを捨ててMac最速のDocker環境を手に入れる](https://qiita.com/yuki_ycino/items/cb21cf91a39ddd61f484)
– [MacのDockerが遅い原因と対処方法(公式)](https://wonwon-eater.com/mac-docker-performance/)
– [Docker For Macが遅い:対策の実験](https://qiita.com/FattyRabbit/items/bfb5a9a321718b7f2756)
– [Docker for Mac遅すぎる問題の解決](https://tech.ga-tech.co.jp/entry/2019/10/docker-vagrant)
– [Docker for Macでマウントしたvolumeの遅

元記事を表示

PHP開発環境を理解しながら構築!③

#はじめに
[前回](https://qiita.com/kyo_suke/items/e6646662e70c5833bb9b)まででローカル環境でPHPを書く環境を整えたので、今回からは実際にPHPを書いてブラウザに表示する方法を忘れないようにまとめていきたいと思います。
###やること
 ・PHPを書いてみる
 ・ブラウザで入力内容確認
###環境
 ・Windows10 64bit
 ・XAMPP v3.2.4
 ・Apache v2.4.46
 ・PHP v7.4.10

##XAMPPを使ってPHPをブラウザで表示
 では早速PHPを書く前に、テスト用HTMLを書いていきましょう。XAMPPやVsCodeをなにそれ?って方は[前回](https://qiita.com/kyo_suke/items/e6646662e70c5833bb9b)の記事をお読みください。
 大丈夫だよーって方はXAMPPのApacheを起動してからお読みください!
##①テスト用PHPファイルの作成
###ドキュメントルート
 ドキュメントルートとはWeb上に公開

元記事を表示

Moodle 3.9 マニュアル – コース

[本文](https://docs.moodle.org/39/en/Courses)

コースは、教師が生徒のために学習教材やアクティビティを追加するMoodleのスペースです。コースは、管理者、コース作成者、または管理者が作成できます。その後、教師はコンテンツを追加し、自分のニーズに応じてコンテンツを再編成できます。画像の下のリンクは、コースの作成、編成、および管理に関する詳細情報を提供します。

![600px-screenshotcourse.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470368/bfac0c38-233e-e92b-33c0-f5df30c1db28.png)
A course using the Clean theme

![600px-MoodleMountainBoost.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470368/4956b6de-a7c9-2baf-0f23-d6

元記事を表示

phpのissetの挙動のを確認する。

# issetの挙動

nullと”や0の挙動が違う

“`php

“`

元記事を表示

PHPをXdebugでデバッグする過程(MAMP)

#開発環境
macOS Cataline 10.15.7
PHP7.4.2
xdebug2.9.8
mamp5.7

#PHP Debugをインストール
vscodeでPHP Debugというプラグインをインストールします。
![スクリーンショット 2020-10-06 19.18.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702435/e6473738-c307-d5d1-1353-d7b7d4aeef3f.png)

#Xdebugをインストール
上記でPHP Debugをインストール後、下にスクロールすると
“`XDebug installation wizard“`というリンクがあるのでそこに飛びます。
![スクリーンショット 2020-10-06 21.14.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702435/c46eb970-ec67-102a-56d6-c710b4bd41f9.

元記事を表示

PHP ~アウトプット用語集3~

# isset
値が設定されているか確認してくれます。
下記の画像は、値がcolorに設定されていればcolorを
値が設定されていなければNone selectedを返します。
![スクリーンショット 2020-10-06 17.06.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663122/95a19447-96e8-cd5e-392d-447bf95d31a0.png)
※issetで調べてnullだったら他の値を入れる事はよくあるので違う記述ができます。
下記の画像と上記の画像と同じ処理になります。
??の部分はnull合体演算子といいます。
![スクリーンショット 2020-10-06 17.16.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663122/5cb2e5fe-712f-e75c-990a-2b549db3a306.png)

# GET POST 違い

### GET
情報の取得

元記事を表示

php header http 受信

http header 受信

https://so-zou.jp/web-app/tech/programming/php/network/http/header/get.htm

HTTPヘッダーを取得 – get_headers()

元記事を表示

Laravel taskscheduleでClass ‘ZipArchive’ not foundとエラー出たがPHPの指定を間違えていたのが原因だった

初Qiitaです。足りない、誤りがある箇所についてはコメントから指摘いただけますと嬉しいです。

環境:MacOS Catalina, PHP 7.4.11, Laravel 7.28.3

■やりたかったこと
Laravelのタスクスケジュールの設定を行い自動実行できるようにしたかった。

■問題
“`php artisan schedule:run“`をすると問題なく動くが、スケジュールを実行するとZipArchiveが見つからないと以下のエラーが出てしまう。
`local.ERROR: Class ‘ZipArchive’ not found {“exception”:”[object] (Error(code: 0): Class ‘ZipArchive’`

■解決方法
使用したいphpの場所を
“`which php“`
で取得してcrontabで明示的に以下のような感じで書く。

“`* * * * * cd /var/www/ && /usr/bin/php7 /var/www/artisan schedule:run >> /var/www/storage

元記事を表示

PHPのエラーログに配列の中身をきれいに出す方法

## 何も考えずに配列をログに吐こうとするとこうなる
#### ソース
“`

“`
#### 実行したときのエラーログ
“`
[09-Jun-2007 03:44:20] Array
“`
「Array」しか出ない(´・∀・`)

### print_r()をかませる。第2引数をtrueにする。
#### ソース
“`

“`
#### 実行したときのエラーログ
“`
[09-Jun-2007 03:44:20] Array
(
[0] => hoge
[1] => piyo
[2] => Array
(
[0] => 100

元記事を表示

【laravel-admin】【grid】Custom Actions Class

##gridの\Encore\Admin\Grid\Displayers\ActionsをoverrideしてCustomActionsを作る

“`CustomActions.php
namespace App\Admin\Controllers;

use Encore\Admin\Admin;

class CustomActions extends \Encore\Admin\Grid\Displayers\Actions
{
protected $actions = [‘edit’];
protected function renderEdit()
{
if(false !== strpos($_SERVER[“REQUEST_URI”], env(‘ADMIN_ROUTE_PREFIX’, ‘admin’).”/auth”)){
return <<LaravelにてDBから取得した画像をツイートする方法

##はじめに
今回は認証済みでアクセス情報も取得している前提で進めますので、
まだの方は先にそちらを完了させて下さい!

php.7.0
Laravel 7

##本文

“`
composer require abraham/twitteroauth //twitteroauthをインストール
“`

“`TweetController.php
use Abraham\TwitterOAuth\TwitterOAuth;//先程インストールしたのをuse
public function index(Request $request)
{
$api_key = //apiキーをセット;
$secret_Key = //シークレットキーをセット;
$access_token = //アクセストークンをセット;
$access_token_secret = //アクセストークンシークレットをセット;

//インスタンスを作成
$twitter = new TwitterOA

元記事を表示

PHPでもコンストラクタに限り、シグニチャーの違うオーバーライドができる!!

# タイトル変更しました
ご指摘いただき、勘違いが分かりましたので、タイトルを以下の通り変更させてもらいました。

**PHPでも他のオブジェクト指向で言うオーバーロードができる!!(ただしコンストラクに限る)**

**PHPでもコンストラクタに限り、シグニチャーの違うオーバーライドができる!!**

# 概要
表題の通りですが、PHPでもコンストラクタに限り引数のシグニチャが異なるオーバーライド(他のオブジェクト指向で言うオーバーロード)ができるというのをマニュアルで確認したというだけのお話です。
PHPではオーバーロードができないという記事をよく見かけるのですが、コンストラクタだけは例外ということが明記されている記事を見かけなかったので(マニュアルにあるから当たり前!?)、残しておこうかと。

[2020-10-06追記]
ご指摘によりオーバーロードはできないことが分かりましたので、以下の記事は、「PHPでもコンストラクタに限り、シグニチャーの違うオーバーライドができる!!」という内容になります。
@error_401 さんありがとうございます!

# Manual
[PHP

元記事を表示

【laravel-admin】【controller】javascript

##laravel-adminのController側でjavascriptを使う

ちょっとしたjavascriptのためにいちいちファイルを作って、とかviewを変更して、とかが大変な時は以下の方法でcontroller側にjavascriptを書いてページに埋め込むことができます。
viewの一部を変更したいけどviewには手を加えたくない…という場合などに便利です。

“`SampleController.php
use Encore\Admin\Admin;

class SampleController extends AdminController
{
/**
* sample
*/
public function sample(Content $content)
{
$script = <<