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

PHP関連のことを調べてみた2021年01月26日
目次

CakePHP3のベースディレクトリを変更する

`http://{domain}/`
こうじゃなくて
`http://{domain}/cakeapp/`
こんな風にサブディレクトリをドキュメントルートにしてCakePHPを動かしたいとき

“`php:config/app.php
‘App’ => [
‘namespace’ => ‘App’,
‘encoding’ => env(‘APP_ENCODING’, ‘UTF-8’),
‘defaultLocale’ => env(‘APP_DEFAULT_LOCALE’, ‘en_US’),
‘defaultTimezone’ => env(‘APP_DEFAULT_TIMEZONE’, ‘UTC’),
// ‘base’ => false,
‘base’ => ‘/cakeapp’,
‘dir’ => ‘src’,
‘webroot’ => ‘webroot’,
‘wwwRoot’ => WWW_ROOT,
“`

上記のように`

元記事を表示

Laravel8 シーダー、モデルファクトリー 配列から属性を上書きしてテストデータを作成する

## はじめに

Laravel8のシーダー、モデルファクトリーで配列を使って属性を上書きしてテストデータを作成するtipsです。

## 環境

– PHP8.0.1
– Laravel 8.23.1

## 準備

下記のモデル、モデルファクトリーがあると仮定してシーダーを作成します。

### マイグレーション

“`php:database/migrations/1970_01_01_000001_create_companies_table.php

元記事を表示

GraphQLでresolverごとのパフォーマンスを計測する方法

GraphQLはresolverを再帰的に実行するため、仕様としてN+1問題を起こしやすく、パフォーマンス・チューニングは重要になってくるかと思います。

そして、実際のデータ操作を行うのがresolverになりますのでresolverごとにパフォーマンスがわかれば便利です。

僕はLaravelでGraphQLを扱うために便利なLighthouseというライブラリを使っているので、例としてはLighthouseでresolverごとにパフォーマンスを計測をする方法について、簡単にまとめました。

クエリー自体の重さを計測するのは別のライブラリとかでできるので、それと組み合わせていければはかどる気がしています。

Apollo TracingというGraphQL自体の拡張機能を使っているので、node.js, Ruby, Scala, Java, Elixir, .NET等でも使えるみたいです。

まだまだ理解が足りない部分や誤解している箇所がありましたらぜひ教えていただけると助かります!!

**開発環境**

– 言語:PHP7.4.8
– フレームワーク:Laravel7.28

元記事を表示

共同開発講座を受講中にコツコツ書いた「詰まったメモ」をジャンル別に全て公開します【総まとめ集編】

#はじめに
タイトルの通り、共同開発講座を受講中に起きたトラブルや詰まりポイントをまとめたメモ(約50記事)をジャンル別に全て公開します。
ジャンルは以下の通りなので、気になるものがあればぜひご覧ください。
###【ジャンル一覧】
・[GitHub関連](https://qiita.com/kei_Q/items/1e421eef9b3bdbcdd9e9)
・[Laravel関連](https://qiita.com/kei_Q/items/79ef7679b28bb3c9738e)
・[データベース(migration/seeding)関連](https://qiita.com/kei_Q/items/cf13f486628bb5662089)
・[環境関連](https://qiita.com/kei_Q/items/412a9695f26aad25a99c)
・[総まとめ集](https://qiita.com/kei_Q/items/e197268fc29fdd664b64)

下記の点を、ご了承ください。
・ジャンルで統一しているため、内容に関しては統一性はありません。
・メ

元記事を表示

【PHP Apache】ソースコードが表示される

LAMP環境構築の際、Apacheによりブラウザにindex.phpを表示させようとすると、ソースコードが表示されたので解決した方法をメモ。

下記ファイルをエディタで編集。

“`

sudo vi /etc/apache2/httpd.conf

“`

下記コメントアウト(#)を外す。

“`

#LoadModule php7_module libexec/apache2/libphp7.so

LoadModule php7_module libexec/apache2/libphp7.so

“`

無事PHPとしてブラウザ表示成功。

元記事を表示

静的htmlをwordpress化する方法

静的htmlをwordpress化する方法※編集中

固定ページ

phpファイルの記載内容



~中略、ここにhtmlを記載する~

ドメイン直下

wp-content/themes/使用しているテーマ/index.php

ショートコードを埋め込みたい

■元ファイル(固定ページや投稿)
[ショートコード]

■方法
○○.phpに以下記載

元記事を表示

オブジェクトのテクスチャを送信して、画像として保存する

Unityでホワイトボードのようなもの作ってた時に使ってた。

###大まかな流れ
1.対象のGameObjectを取得。
2.保存したいTextureを取得。
3.取得したTextureをバイト配列に変換。
4.サーバ上のphpに送信する。
5.phpで受信したバイト配列を画像に戻して保存する。
→受信側のphpは以前書いた記事そのまんまなので以下参照
pythonで画像を送信、phpで保存する
以上。

###全体のソースコード
“`SendPic.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Cert

元記事を表示

Codeigniterを使ってレスポンスで画像を返す

サーバ側で何かしらの処理を実行し、その結果に基づいてクライアント側に画像を返したい場合、Codeigniterに用意されている出力クラスを使うと便利です。
※画像以外にも任意のファイル形式を返す場合に有効です

imgタグのsrc属性に直接URLを指定したり、JavaScriptのImageクラスを動的に生成したりするときに使用することで、画像を簡単に表示することができます。
画像のURLのみを返すような処理であれば、画像そのものを返してしまった方が実装コストが低くて済むと思います。

### コントローラーのサンプル
※画像($file_path)は適当に用意してパスを合わせてください。

“`Image_responder.php

元記事を表示

Slackでの勤怠入力でAPI経由でOutlookの予定表にイベントを追加するメモ

#できたことダイジェスト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223443/972da619-dff2-7b14-b86d-9ae8da64da94.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223443/71351302-74d1-8e5b-0511-d9b90f399543.png)

#ここまでのお話
前回といってもかなり前の話ですが、[Slackで勤怠管理して可視化する](https://qiita.com/celery/items/046a6495574cd03ce414)ということをやって、会社のグループ単位でYellowfin(BIツール)のダッシュボードを確認して勤怠を確認できるようにしました。(もし下記にあるコードを参照するならこの記事も確認してもらえると読みやすいと思います。)
その時スケジュール管理ツールにaipoを使っていたので、休日や半休

元記事を表示

WordPress REST APIで画像投稿する場合はMIME typeを指定するようになってる

“`post_image.php
function post_image($image){
$WP_USERNAME = ‘user’;
$WP_PASSWORD = ‘pw’;
$url = ‘http://example.com/wp-json/wp/v2/media’;
$file = $image;

$data = wp_remote_get($file);

$image_response = wp_remote_post( $url, array(
‘headers’ => array(
‘Authorization’ => ‘Basic ‘ . base64_encode($WP_USERNAME.’:’.$WP_PASSWORD),
‘Content-Disposition’ => ‘attachment;filename=’ . basename($file),
‘Content-Type’ => ‘image/jpeg’
//

元記事を表示

【Laravel】Dockerコンテナ内でのユーザー認証導入

初めまして!
スクールではRuby on Railsを学習。
就活の関係でPHPの学習始めたばかりです。
初めて1からLaravelで作成するので記録を残します。

## DockerでLaravelの開発環境を作成

これに関しては[こちら](https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4)の記事を参考にというかもうそのまま使わせて頂きました!
大変わかりやすかったです。
ありがとうございました!

## ユーザー認証導入

ユーザー登録やログイン機能の実装です。
Railsだとdeviseで簡単にできるイメージでしたが結構つまりました。
Dockerというのが理解が追いついていないので難しかったです。

`目標物`
Laravelの標準のユーザー認証機能の導入
![スクリーンショット 2021-01-25 13.56.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1051152/6387d6cf-83ab-5d98-bcf3-85

元記事を表示

【PHP初心者】Laravelを2週間触ってみて理解したこと③【blade】【継承】

こんにちは、nakaです?
最近在宅が増えて早起きができなくなってしまいました・・・
通勤がないとぎりぎりまで寝れてしまう&お布団があったかい誘惑に負けてしまいそうになります。こういう場合私は朝に楽しみをもってきて早く起きる作戦を実行します。今日の夜はホームベーカーでも仕込もうかな。

さて前回はLaravelのルーティングについてお話しました。
前回の記事:[【PHP初心者】Laravelを2週間触ってみて理解したこと②【ルーティング】](https://qiita.com/naka____/items/d0923568a44217b192d3)

今回はLaravelのテンプレートエンジンである、**blade**についてまとめようと思います!

## bladeとは
初回の記事でも触れましたが、bladeはLaravelのビューの部分です。
・ビューに直接PHPが記述できる
・ファイル名は「~.blade.php」という拡張子
という特徴があります。

##まず環境を確認
まずは環境を確認しましょう。
今使っているLaravelのバージョンを確認してください。
(バージョンで

元記事を表示

【Laravel】バリデーションのrequiredとビューの必須マークを連動させたい

## 概要

こういう必須マーク、よく付け忘れや消し忘れが目立つ。
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290284/112ce6bf-e7d9-178a-1b69-3183fb40f0fa.png)
なのでバリデーションルールのrequiredに沿ってviewに表示されるような仕組みを考えてみました。

## 考え方

* コントローラーでバリデーション配列を呼び出し、ビューにセットする
* ビューの入力フォームで入力フォームの名前をセットし、入力フォームの該当のバリデーション配列内にrequiredがあれば必須マークを付ける

## 実装例

* コントローラー
* バリデーション
* ビュー(入力フォーム部分)
* ビュー(必須マーク部分)

を記載します。
やりたいことが何となく伝わればよいかなということで、バリデーションルールとかビューの入力項目1個1個の中身は適当です。

### コントローラー

サンプルコード
元記事を表示

GAEで原始的なPHP7のプロジェクトを動かすのに苦労した話

##動機
Google App EngineでPHP7のサンプル的なプロジェクトを動かそうとしてえらく苦労したのでその顛末をここに記す。
構成としてはルートに複数のPHPファイルと背景画像、その下のフォルダにPHPファイルやhtmlファイル、画像などがあるようなものだ。HerokuやAWS ElasticBeanstalk、Azureではローカルで動いていたPHPのプロジェクトをそのままデプロイすればそのまま動いた、実に簡単だった。しかしGoogle App Engineではそうはいかなかった。

##app.yaml
まず、アプリの設定情報を記述するapp.yamlを書かないといけない。どのバージョンを使うのかとか、アクセスされたパス、拡張子に応じてどのような動作するのかとか。いちいち言わんでもわかるやろと思ってしまうが。
で、app.yaml、phpという単語でググるとこの[PHP5用のページ](https://cloud.google.com/appengine/docs/standard/php/config/appref?hl=ja)がトップに表示されるのだが、PHP5とPH

元記事を表示

【Laravel】シーダーの複数あるテストデータをforeachでスマートに書く

## はじめに

Laravelでシーディングのテストデータが複数ある場合、コードが冗長になってしまいます。
今回はforeachを使ってスマートにまとめる書き方をお伝えします。

今回の例ではCarbonを使っておりますが、Carbonについて詳しくは以下の記事が参考になります。
[PHPで日付時刻処理を書くならCarbonを使うべき – Qiita](https://qiita.com/yudsuzuk/items/ff894bd0b76d4657741d)

#### 対象
LaravelでWebアプリを作っている初学者向けの内容となっております。
本記事はLaravel青本をベースに書いております。
[PHPフレームワークLaravel入門 第2版 \| 津耶乃, 掌田 |本 | 通販 | Amazon](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-

元記事を表示

setup IIS + PHP + Oracle

#Outline
今回、windows server上でOracleに接続するWEBアプリを作る機会がありました。
Oracleに接続するにあたり、多少設定などに苦労したことがあるため、自分の構築メモふくめて、手順を残しておく

# Environment

| Item | Version | Memo |
|:———–|————:|:————:|
| OS | Windows Server 2019 Standard| |
| DB | Oracle 12.1.0.2.0| |
| PHP | 7.4.14 (32bit) | |
| Instant Client |19.8.0.0.0 | |

# Instant Client

### Download

ここから、Basicパッケージをdownloadする

https://www.oracle.com/jp/topics/technologies/download-instant

元記事を表示

共同開発講座を受講中にコツコツ書いた「詰まったメモ」をジャンル別に全て公開します【データベース(migration/seeding)編】

#はじめに
タイトルの通り、共同開発講座を受講中に起きたトラブルや詰まりポイントをまとめたメモ(約50記事)をジャンル別に全て公開します。
ジャンルは以下の通りなので、気になるものがあればぜひご覧ください。
###【ジャンル一覧】
・[GitHub関連](https://qiita.com/kei_Q/items/1e421eef9b3bdbcdd9e9)
・[Laravel関連](https://qiita.com/kei_Q/items/79ef7679b28bb3c9738e)
・[データベース(migration/seeding)関連](https://qiita.com/kei_Q/items/cf13f486628bb5662089)
・[環境関連](https://qiita.com/kei_Q/items/412a9695f26aad25a99c)
・[総まとめ集](https://qiita.com/kei_Q/items/e197268fc29fdd664b64)

下記の点を、ご了承ください。
・ジャンルで統一しているため、内容に関しては統一性はありません。
・メ

元記事を表示

【初心者】PHPエラー箇所の特定方法(MAMP)

##①ターミナルでMAMP内のログファイルに移動

“`
ApplenoMacBook-Air:~ ユーザー名$ cd/Applications/MAMP/logs
“`
logsの中の、php_error.logファイルにてエラーが吐き出されている。

##②tailコマンドを実行(-fは、ファイルが更新されても常に追い続けてくれる)

“`
ApplenoMacBook-Air:~ ユーザー名$ $ tail -f php_error.log
“`

##③場所の特定が完了

“`
ApplenoMacBook-Air:~ ユーザー名$ tail -f php_error.log
[24-Jan-2021 21:46:13 Asia/Tokyo] PHP Notice: Undefined variable: statusee in /Applications/MAMP/htdocs/ディレクトリ/application/core/View.php on line 63
[24-Jan-2021 21:46:13 Asia/Tokyo] PHP Notice: U

元記事を表示

共同開発講座を受講中にコツコツ書いた「詰まったメモ」をジャンル別に全て公開します【Laravel編】

#はじめに
タイトルの通り、共同開発講座を受講中に起きたトラブルや詰まりポイントをまとめたメモ(約50記事)をジャンル別に全て公開します。
ジャンルは以下の通りなので、気になるものがあればぜひご覧ください。
###【ジャンル一覧】
・[GitHub関連](https://qiita.com/kei_Q/items/1e421eef9b3bdbcdd9e9)
・[Laravel関連](https://qiita.com/kei_Q/items/79ef7679b28bb3c9738e)
・[データベース(migration/seeding)関連](https://qiita.com/kei_Q/items/cf13f486628bb5662089)
・[環境関連](https://qiita.com/kei_Q/items/412a9695f26aad25a99c)
・[総まとめ集](https://qiita.com/kei_Q/items/e197268fc29fdd664b64)

下記の点を、ご了承ください。
・ジャンルで統一しているため、内容に関しては統一性はありません。
・メ

元記事を表示

【PHP】初中級者が解くべき過去問精選 100 問を解いてみた【6問目/100】

アルゴリズムのアウトプット

ということで、
[レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】](https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F)@e869120さん

>AtCoder で水色コーダー、つまりレーティング 1200 を少ない問題数で達成するために、茶色コーダー・緑コーダーにとって適切な教育的良問を 100 問集めました。

こちらの記事の初中級者が解くべき過去問精選 100 問
をPHPで解いていきます。

“`php

元記事を表示

OTHERカテゴリの最新記事