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

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

Mapbox地図内のクリックした地点で、町丁目ポリゴンと人口データを取得し、表示させてみる

## はじめに
今回は、Mapbox地図内でクリックした任意地点で、町丁目ポリゴンと人口総数データをリクエストし、地図上に表示させてみました。主な技術要素・使用しているものは以下になります。
– Mapbox および Mapbox GL JS
– JavaScript
– PHP
– TerraMap API(区画ポリゴンや統計データ等を提供するWeb API)

※今回使用している人口総数データは、令和2年国勢調査(2020年国勢調査)の結果に基づいております。

https://www.mapmarketing.co.jp/terramap-api?grid=qiita&utm_source=qiita.com&utm_medium=referral&utm_campaign=qiita_mapbox_click_point_area_210bb89a6f24f09fc8a1_01

## 完成イメージ
今回の完成イメージは、以下の動画のようになります。
地図上の任意地点で、商圏分析の基礎データとも言える町丁目ポリゴンと人口総数データをリクエストし、表示させました。また表示したポリ

元記事を表示

【Laravel】validateメソッドを使ったバリデーション処理

# はじめに
validateメソッドを使ったバリデーション処理について説明します。
Laravelのバージョンは9.43.0です。
# 使い方
validateメソッドは、コントローラの基底クラスに組み込まれている`ValidateRequests`というトレイト(メンバーをまとめてクラスに追加するもの)に用意されている機能です。
第1引数にチェックする項目、第2引数に検証する設定情報を配列にまとめたものを渡します。

“` php
// contorollerファイル
public function post(Request $request) {
// 検証ルール
$validate_rule = [
‘inputタグのname’ => 検証ルール1|検証ルール2,
];
// validateメソッド呼び出し
$this->validate($request, [検証ルールの配列]);
}
“`

# 使用例
コントローラは下記になります。
validateメソッドの第1引数にチェック項目(今回はリクエスト)、第2引数にバリデーションルールを渡しま

元記事を表示

【最低限】Laravel Sailを使った開発環境構築

## Laravel Sail って何?
Laravlの開発環境をさくっと簡単に作成でき、
軽量CLIインターフェースでLaravelへのコマンド操作を行えます。

今回はMac&Dockerで環境を構築します
Dockerがインストールされている前提で進めます

## プロジェクトの作成
“foo-project”というプロジェクト名で作成する場合は以下のコマンドをターミナルで実行します
“`bash
curl -s “https://laravel.build/foo-project” | bash
“`

だいたい5分くらいかかった後でMacのパスワードを求められました。

“`bash
Please provide your password so we can make some final adjustments to your application’s permissions.

Password:
“`

正しいパスワードを入力できればsailコンテナのビルド完了です
“`bash
Thank you! We hope you build something

元記事を表示

Laravel8でCSSが効かない→nginxのdefault.conf設定ミスだった

# 環境
Docker 20.10.14
PHP 8.0.27
Laravel 8.83.27

# 状況
– 以下のサイトを元にDocker + Laravelの環境構築
https://www.torat.jp/laravel-docker-lemp/
– headタグ内に以下の通り記載しているが、CSSが読み込めない
“` “`

# 解決
– 以下のサイトを参考に、nginxのdefault.confに記載を追加
https://teratail.com/questions/376936
(今回はCSSを読み込む目的だったが、JavaScriptについても、いずれ使うと思ったため記載)
“`
location ~ \.css$ {
add_header Content-Type text/css;
}
location ~ .js$ {
add_header Content-Type application/x-javascript;
}
`

元記事を表示

PHPでアプリを作成してみた【掲示板】

## XAMPP 環境構築

公式サイト:[XAMPP](https://www.apachefriends.org/jp/index.html)

①Headerにある『ダウンロード』をクリックする。

②『Launchpadは使用しないでください。Launchpadではショートカットメニューにアクセスできません。』と表示されたので、Controlキーを押しながらアプリケーションアイコンをクリックして、ショートカットメニューから「開く」を選択し、「開く」をクリック。

③インストールする。

## 参考サイト
[【PHP入門】2ちゃんねる風掲示板を作りながら学ぶPHP入門講座 ~XAMPPを利用~](https://www.youtube.com/watch?v=3QxtIrakwKk&t=1843s)
[PHP開発環境「XAMPP Mac版」プログラミングスクールが教える最も簡単な方法](https://www.youtube.com/watch?v=yc81-25UknM)

元記事を表示

PHPerが学ぶGo言語③ 例外処理

っす。豚野郎です。
今回は例外処理を書いていきます。

Go言語は例外処理構文(try、catch等)がありません。
その中で例外処理を実行していきます。

※ 注意:内容はPHPか何かの言語を書いたことがある方向けなので、
説明を割愛している箇所は多々ありますので、ご了承ください。

**go version go1.19.4 darwin/amd64**

# 1. fmt.Errorf()
“`sample.go
package main

import “strconv”
import “fmt”

// fmt.Errorf()で例外情報作成
// fmt.Errorf()の戻り値の引数はerrorにする。
func Calculation(num int) (string, error) {
if num != 1 {
// Go言語では、エラー情報を2番目に返すことを推奨されている
return “”, fmt.Errorf(“1ではありません。”)
}
num += 1
return “1 + 1 =

元記事を表示

Laravel9でアプリを作成してみた【ゴミ箱付きToDoリストアプリ】

## ファイル構成
“`
docker-config
├─ mysql
├── data //データの保存
└── my.cnf
├─ nginx
├── Dockerfile
└── default.conf
├── php
├── Dockerfile
└── php.ini
“`
“`
docker-compose up -d
docker ps

“`

## 参考サイト
[【シンプル解説】Laravel9でゴミ箱付きToDoリストアプリを作る](https://www.youtube.com/watch?v=HHHN76dHrv0&t=1144s)

元記事を表示

コンストラクタインジェクションを紐解く

# コンストラクタインジェクションとは

**依存先のモジュールを自ら生成せずに、コンストラクタの引数としてもらうようにすること**です。

はい。イメージつきにくいですよね…。

# コンストラクタインジェクションしていない例

Carクラス内で、Engineクラスのインスタンスを作成しています。
“`php
class Car
{
private $engine;

public function __construct()
{
$this->engine = new Engine();
}

public function move()
{
$energy = $this->engine->run();
}
}
“`

# コンストラクタインジェクションしている例

Carクラス内で、Engineクラスのインスタンスは作成していません。
引数としてEngineクラスのインスタンスを受け取っています。

“`php
class Car
{
private $engine;

元記事を表示

生のPHPでフリマサービスを作る_part1

## フリマサービス作成の流れ

1\.機能を洗い出す
2\.画面設計(今回はPHPの深掘りがメインなので割愛します)
3\.テーブル設計
4\.クラス設計
5\.実装

### 機能を洗い出す
**今回の作るフリマサービスの機能は以下の通り**
– ユーザー登録
– ログイン
– ログアウト
– 退会
– プロフィール登録
– プロフィール編集
– パスワード変更
– パスワードリマインダー
– 決済(余裕があれば)
– コンテンツ登録
– コンテンツ編集
– コンテンツ削除
– コンテンツ一覧表示
– コンテンツ詳細表示
– コンテンツ検索
– コンテンツ毎の掲示板表示
– コンテンツ毎の掲示板へのメッセージ登録
– お気に入り登録

### テーブル設計
以下のように設計する
![スクリーンショット 2023-01-22 0.31.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1461162/6f8d7e0d-29f0-93a3-5b42-bef4fa9ac15c.png)

###

元記事を表示

【Smarty】JavaScritpを別ファイルに書くときの読み込みパス

# Smarty使用時にJavaScritpを別ファイルに書くときの読み込みパス

## 発端
* javascriptをjs専用のフィアルに書いてそれをSmartyで読み込みたかったがうまく読み込めずハマったので備忘録。

## 原因
* Smartyからのパスを書いていた。

## 解決方法
* そのテンプレートファイルを呼び出しているPHPからのパスを書く。

## 詳細
* ディレクトリ構造
“`
test–
|-layout
| |_resource
| | |_javascript.js
| |_layout.tpl
|
|-module
| |_module.php
|
|-template_c
“`
* module.phpでlayout.tplを読んで画面に表示させているとき、layoutに記述したinputタグの内容についてjavascriptで処理をしたいとする。

“`html:layout.tpl

元記事を表示

PHPのビルトインサーバでXdebugを使いVSCodeでデバッグする

# Install
– [phpインストール](https://qiita.com/yuki777/items/c8e33ca3290b55862c6a)済みであることを前提としています
– [VSCode拡張のPHP Debug](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug)をインストールする。

# php.ini
“`
; php –ini でphp.iniもしくはxdebug.iniを探してください

zend_extension = “xdebug.so”
xdebug.client_host = 127.0.0.1
xdebug.client_port = “9003”
xdebug.mode = debug
xdebug.idekey = “PHPSTORM”
xdebug.start_with_request = yes
“`

# PHPビルトインサーバを起動する
– プロジェクトによりけりだと思いますが、下記のようなphpコマンドで起動します。
– `

元記事を表示

ライブラリで簡単に無限スクロールを実現 JS/jQuery/PHP/PDO/MySQLを使用して

jQueryライブラリの infinite-scroll を利用します。

https://infinite-scroll.com/

## HTML, JS
まずはHTMLおよびJavaScriptの部分。

注意点としてはloadNext.phpと記述する部分で追加部分を読み込むわけだが、ここにpage=1のような数値が必須である点。その数字を読み込むごとに増やしていく前提でこのライブラリは作られている。ここは自動で増えていく。

そのため、この例のようにpage=1としておけば勝手に次はpage=2として自動で読み込んでくれる。便利なんだが不便なんだか分からんが。
“`timeline.html

すでに読み込まれているコンテンツ
すでに読み込まれているコンテンツ
すでに読み込まれているコンテンツ

元記事を表示

Laravel × デプロイのまとめ

初めてのデプロイでつまづきが多すぎたのでメモ

サイト自体はこちら →

https://wp955234.wpx.jp/product

(とりあえずそれらしいものをデプロイしたいだけだったので色々雑い。)

# まずLaravelをデプロイする前に100%初学者が見るべきサイト

いろんなサイトがあるがどれもなぜかエラーが出ない前提だったりSSHなどの接続について触れてなかったりまともにわからないサイトばかり。
最終的にこのサイトにたどり着いた。結論ほぼこの通りにやればよし。

https://nebikatsu.com/6604.html/

こちらもよさげ cliborありがとうございます。

https://chigusa-web.com/blog/xserver-laravel/

とてもリンク先が丁寧なのでここからはつまづいた部分とか補足。

# SSH接続
この通りやってTeraTarm入れましょう。

https://www.xserver.ne.jp/manual/man_server_ssh_connect_tera.php

# PHPのコマンド実行するPHP

元記事を表示

【PHP】$_POSRで送信するためのチートシート

# $_POSTで送信するためには

## 発端
* $_POSTでデータが欲しいがやり方が曖昧だったためまとめる。
【結論】formに“`method=”POST”“`、“`buttonのtype=”submit”“`にしてれば飛ぶ。

## 方法
### form内で色々な情報を集めてまとめて送信する場合
“`php:index.php

// inputBox

// password

// adress

// selectBox

メールアドレス(確認用)
“`

以上

元記事を表示

PHPを基本からまとめてみた【環境構築】

## PHPとは

サーバーサイドのプログラミング言語

## WordPress

ブログを作成するシステム

## MAMPとは
PC上にローカル環境サーバ環境一式をインストールできるツール

## 環境構築

ローカル環境構築 ⇨ PCの中にサーバー

公式サイト:[MAMP](https://www.mamp.info/en/downloads/)

Pathの設定
“`
//terminal

cd /Applications/MAMP/htdocs/
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -V

//プロジェクト作成
composer create-project laravel/laravel <プロジェクト名>
“`

“`
brew tap shivammathur/php
brew install shivammathur/php/php@7.4
brew link php@7.4

元記事を表示

負荷テストする時大量データ作成プロシージャ

DROP PROCEDURE `proc_test01`
/
CREATE DEFINER=`homestead`@`%` PROCEDURE `proc_test01`(IN input int(1))
BEGIN
SET @start_idx = 0;
SET @customers_info_id = 100000;
SET @point_card = 7130010000 ;
loop1: LOOP
SET @start_idx = @start_idx + 1;
SET @customers_info_id = @customers_info_id + 1;
SET @point_card = @point_card + 1;
IF @start_idx > input THEN LEAVE loop1;
END IF;

# カード会員情報の登録
insert into DB.table1(card_info_id,customers_info_id,asp_card_main_id,asp_card_

元記事を表示

OTHERカテゴリの最新記事