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

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

Webベースの文書管理システム(DMS)を試した。

###はじめに

簡単な文書管理システムを試してみたくなってオープンソースの
文書管理システム(DMS)を試しました。

###環境

Windows 11 Pro
Apache 2.4
MySQL 5.7.33
PHP 7.1
phpmyadmin 3.5.6

###インストール

参考ページからダウンロードしてインストールしました。
phpmyadminにログインして新規データベースを作成しました。
後はインストーラの手順通りでうまくインストールできました。

###カスタマイズ

・ロゴの変更

・日本語化しました。
includes/languageのenglish.phpをjapanese.phpの名前でコピーして
必要な箇所を翻訳しました。
includes/language/DataTables/datatables.english.txtも同様に
datatables.japanese.txtの名前でコピーして
必要な箇所を翻訳しました。

###インストール後の問題点

・複数のファイルを一度にアップしようとしたらエラーになった。

“`
Upload Faile

元記事を表示

自作ライブラリをComposerでインストールできるようにしよう!

# はじめに
今回カレンダーライブラリを作成してみました。

https://github.com/tyatyamaruko/Calendar

仕事でカレンダーを表示するような事例が多々あるのでこの際ライブラリ作ってcomposerでインストールできるようにしてしまおうと思いったったのがきっかけです。

さて、ライブラリの中身については省略してどうやって

“`
composer require hogehoge/fugafuga
“`

できるようにするのかみていきましょう。

# composer.json
作ったライブラリ(composer requireできるようにしたいやつ)のルートディレクトリにcomposer.jsonを作成しましょう。
作成できたら書き込んでいきましょう。

“`json:composer.json
{
“name”: “hogehoge/fugafuga”,
“description”: “hogehoge~~~~~~”,
“version”: 1.0,
“type”: “library”,
“authors”: [

元記事を表示

Phpからシンプルにslackにアラートを飛ばす(2022新方式版)

## はじめに
フレームワークはCodeIgniterを使っていますが、どんなフレームワークでもサービスとしてクラスを作って、どっかから呼べばできるはずです

## 下準備
slack側の準備はこれを見てください

https://qiita.com/YoshitakaOkada/items/94f66dffbf46294f7b20#slack%E5%81%B4%E6%BA%96%E5%82%99

## source
“`php:app/Libraries/Slack.php

元記事を表示

PHP7.4をインストールしたAmazonLinux2にLaravel8をインストールする

## 概要
以下のページで構築した環境にLaravel8をインストールする。
[AmazonLinux2にamazon-linux-extrasでPHP7.4をインストールしてみた](https://qiita.com/wwwqedhtakanori/items/a0d665f0123ef0f13046)

## Composerをインストール
まずはComposerをインストールする。

composerをダウンロード

“`
$ curl -sS https://getcomposer.org/installer | php
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1790108/2bc38067-53d6-e0ee-c06f-f09d11f14741.png)

ダウンロードしたcomposerモジュールをパスの通っているところに配置

“`
sudo mv composer.phar /usr/local/bin/composer
“`

composerの

元記事を表示

PHP独学ノート その3

変数の続き
名前の記法ルール
①camelCase記法
先頭文字は小文字、その後、単語の区切りを大文字で表記。

“`
$userName
“`

②Pascal記法
先頭文字も含めて、全ての単語の頭文字を大文字で表記。

“`
$UserName
“`

③アンダースコア記法
全ての文字は小文字/大文字で表し、単語の区切りはアンダースコア(_)で表記(スネークケース記法ともいう)

“`
$user_name
“`

どれを使っても間違いではないが、変数、関数はcamelCase記法、定数は全て大文字のアンダースコア記法、クラスはPascal記法が一般的。

予約語

予約語はPHPで予め意味が決められた単語。

予約語の利用は定数、関数/クラスの名前では使用禁止。
変数は頭に「$」が付くので例外的に使えるが、混乱するので使わない方が良い。

識別子の命名は、変数や関数の名前を見るだけでおおよその内容を把握できるようにす

元記事を表示

[wordpress]function.phpで正規表現を使って特定のディレクトリ以下へのアクセスをリダイレクト

WordPressで作っているサイトでリダイレクトをかけたい場合、.htaccessで行うことが多いかと思います。多いかと思います、と言いつつ私は今回初めて実装したのですが、数時間の格闘の上、stgでの実装に成功!
しめしめ…と本番反映しようとしたところ、なぜかstgでは効いた.htaccessが本番で機能しない。こんなことがあっていいのか、否、よくない。

*WordPressでの.htaccessで参考にしたのはこちらの記事。この記事は何も悪くないです。
[WordPressで.htaccessリダイレクトができない場合【解決】](https://wp-customize.net/wordpress/7626.html)

しかし急いでいたこともあり、ひとまず.htaccessの検証は後回しにしてWordPressのfunction.phpでリダイレクトを実装することに。まあこちらも不慣れなもんでしてね。数時間の格闘の上、やっと実装に成功したってもんです。

特に正規表現!!難しいですねー備忘録を残しておきましょう。

やりたいこと:
– URI /blog/以下のページを302

元記事を表示

PHPの配列操作(一部)

#PHPの配列
使用の際は公式で調べたほうが無難です

##配列作成
“`php
//配列宣言
$配列名 = array(‘値1’, ‘値2’, ‘値3’);
$配列名 = [‘値1’, ‘値2’, ‘値3’];
“`
“`php
//連想配列
$配列名 = array(“キー1” => “値1”, “キー2” => “値2”);
$配列名 = [“キー1” => “値1”, “キー2” => “値2”];
“`

##配列関連の関数

###配列の結合
“`php
新しい配列 = array_merge (配列1, 配列2,・・・);

$arr1 = array(‘A’,’B’);
$arr2 = array(‘C’,’D’);

$arr3 = array_merge($arr1, $arr2);
“`

###配列要素を区切り文字で連結し文字列にする
“`php
文字列 = implode(区切り文字, 配列)
// 配列の要素と要素を区切り文字を挟んで連結する
// 1つの文字列にして返す。
// 区切り文字は省略可
$arr = array(‘AAA’, ‘B

元記事を表示

カレーを作りながらPHPオブジェクト指向プログラミングを学ぼう!!!

今回はphpの復習を兼ねてオブジェクト指向についてまとめたいと思います。また、直感的に理解しやすいように「カレーを作る」ということをテーマに進めて行きたいと思います。

#オブジェクト指向の3大要素
###1.クラス
クラスには「まとめる」「隠す」「たくさん作る」という3つの特徴がある。
######1-1.「まとめる」とは
クラスには「プロパティ」や「関数」を含むことができる。カレーで例えると、「プロパティ」はカレーの具材であり、「関数」はそれらの具材を調理するといったところでしょうか。

“`php:カレークラス
class Curry{
public $carrot
public $potatoes
public $onion
public $meet

function cooking($carrot,$potatoes,$onion,$meet){
echo “カレーの完成!具材は” . $carrot .$potatoes .$onion .$meet .”です。”
}
}
“`

“`php:実行クラス
//Curryインスタンス

元記事を表示

PHP_CodeSnifferで最強のPHPのコード整形を手に入れる

## TL;DR
– PHPで書かれたコードのコーディング規約にPSR-12を適用して開発してるよ!
– エディタの整形ルールの設定が漏れてて、気づいたら全然触ってないところまで整形されてdiffが読みづれえ…
– コード整形のルールをレポジトリ内に入れてPHP_CodeSnifferのコマンドで一発で整形できるようにした!
– IDE(PhpStorm)からもPHP_CodeSnifferを使うようにした

## PHP_CodeSnifferとは?
PHP_CodeSnifferとは、コーディング規約(PSR-12など)に沿った構文チェックを行ったり、違反があったら自動で修正することが出来る静的解析ツールのことです。

[squizlabs/php_codesniffer](https://packagist.org/packages/squizlabs/php_codesniffer)

composerでPHP_CodeSnifferを入れると、`phpcs`と`phpcbf`というコマンドが使えるようになるので、これらを使って違反をチェックしたり整形をします。

## イ

元記事を表示

【PHP】小ネタ

#コード
“`PHP

元記事を表示

PHP beginTransaction 整合性 ACID特性

“`index.php

~~~~~~~~
//Update構文にて、お金の受け渡しを想定したケース

try{
$cone->beginTransaction;

$psn->execute([
:name => $A_user, //佐藤さん(剛田さんへお金渡す人)
:money => -1 * $money //-2000円の値が入ってます。
]);

$psn->execute ([
:name => $B_user, //剛田さん(佐藤さんからお金受け取る人)
:money => $money //2000円の値が入っています。
]);

$cone->commit();
}catch(PDOExcetion $e){

echo $e->getMessage();
$cone->rollback();

}

“`

説明

①今回のケースでは、「佐藤さん」は「剛田さん」にお金を2000円振り込むケースです。

②トランザクションを用いずこのケースを処理しようとした場合

 A.正常に問題なく処理が行われる。

 B.佐藤さんの処理は正常に行わ

元記事を表示

PHPでDBに接続してSQLを実行する

# PHPでDBに接続する為の機能 = PDO
PHPでデータベースに接続するための機能を「PDO」といいます。
PDOは「PHP Data Object」の頭文字をとったもの。

【PHPリファレンス】

https://www.php.net/manual/ja/class.pdo.php

# DBに接続する
PDOを利用してデータベースの接続を行います。

“`php:sample.php
$db = new PDO(‘データベースの種類:host=接続先アドレス;dbname=データベース名’, ‘ユーザー名’, ‘パスワード’);
“`

**(例)**

“`php:(例).php
$db = new PDO(‘mysql:host=localhost;dbname=my_db’, ‘root’, ‘root’);
“`

# SQLを実行する
DB接続の後、queryメソッドを利用してSQLを実行します。

“`php:sample.php
// testという名前のTableを作成する
$db->query(‘create tabl

元記事を表示

言語を比べると見えてくるもの


この記事は[リンク情報システム](https://www.lis.co.jp/)の「TechConnect!2022年2月」のリレー記事です。
engineer.hanzomon のグループメンバによってリレーされます。
(リンク情報システムのFacebookは[こちら](https://ja-jp.facebook.com/lis.co.jp/)から)

TechConnect!2022年2月のインデックスは[こちら](https://qiita.com/hs-lis/items/69eee14fd7bec92a854f)

#はじめに
初めて記事を書くので、何を書くかで悩みましたが、
IT業界に入って一番最初に気になったことにしました。

色々なプログラミング言語があるけれど、実際どの言語が何に適しているのか、
言語ごとの実際の内容の差はどうなのか……
今回は、どこでも聞いたことのある言語4つ程に絞って軽く書いていきます。

#言語毎の特徴と、利用されている分野

**■Java**
よく名前を聞く言語1位と言っても良いのではと言う言語

・特徴
 どん

元記事を表示

PHP SQLインジェクションを意識する 初学者向け

※PHP初学者向けコンテンツです。
内容に誤りがある場合はご指摘頂けますと大変ありがたいです。

PHP学習時に何か作成しながら勉強しようと思っている際に、
DB連携を行う時、サイトに書いてあるコードをコピペして動けるようになったと満足していたあの頃の自分へ向けて書きます。

PHPを用いてDB連携を行う僕へ

例えば僕はこんなプログラムを書いていた。

“`index.php

画面上でユーザーが入力するためのフォーム画面(簡易版)です。



元記事を表示

【XAMPP】MySQLの全てのクエリログを保存する方法

#経緯
初投稿です。
XAMPPでPHPを動かしていたところ、エラーは出ないけど操作が思っていたのと違う…なんてことがよく起こるので、データベースと接続して使うなら必ず設定しておきたいところ。
この設定を行っておくと、XAMPPのMySQLにクエリを飛ばすたびにログが残るので、bindParam等でうまくいっていない時などに、最終的にどんなクエリが飛んだのかなどを確認でき、根本原因の究明につながるかと思います。

#設定方法
では早速設定方法です。
###my.iniを編集する
XAMPPを起動して「Explorer」をクリックすると、xamppのフォルダに飛べます。
![スクリーンショット (42)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524944/04a006c3-964d-973c-ba8c-847d7746d978.jpeg)

xamppフォルダの中の「mysql」の中に「bin」というフォルダがあり、そこに「my.ini」というMySQLの設定ファイルが入っています。こ

元記事を表示

PHP独学ノート その2

PHPは大文字/小文字を区別しない。

なので

“`
PRINT ‘こんにちは、世界!
’;
pRinT ‘こんにちは、皆さん!’;
“`
のように記述しても問題なく処理される。
だが、見にくいだけでなくスペリングミスの原因にもなるのでなるべく公式ドキュメントに沿った記述を心がけるべき。

コメントは開発者のための備忘録

コメントはスクリプトの動作には関係しないメモ情報のこと。
大概他人が書いたコードは読みにくいし、自分が書いたコードも後から見るとなにがなんだか思い出せない。

そんな場合に備えてスクリプトの要所要所にコメントを残しておくことは大切。

PHPでは、コメントを記述するために3種類の記法を選択できる。

“`

“`
上記はHTMLコメント。PHPはHTML埋め込み型言語なので当然HTML部分ではこのコメントを使用できる。しかしスクリプトブロック()内では使用できない。

“`
//これはコメントです。
#これはコメントです。
“`
単一行のコメント。
「//」または「#」から行末までコメント

元記事を表示

【Laravel】PHPのバージョンを変更する

# 環境

docker-compose: 1.29.2
Laravel Framework: 8.80.0
Laravel Sail: 1.13.2

Laravel Sailを使用したLaravelプロジェクトになります。

# 手順

## `docker-compose.yml`

Laravelの[ドキュメント](https://readouble.com/laravel/8.x/ja/sail.html#sail-php-versions)にも手順がありますが、
それに則れば実現できるとは思います。

“`yml:docker-compose.yml
# PHP 8.1
# …
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.1
image: sail-8.1/app
# …

# PHP8.0
# …
services:
laravel.test:
build:
context: ./vendor/lara

元記事を表示

【PHP】echo省略 PHPタグ省略

セミコロンも省略できるし使いやすい

#コード
“`PHP




“`
#結果
“`
1234ギブミーチョコレート1234ギブミーチョコレート
“`

元記事を表示

M1 Macでno matching manifest for linux/arm64/v8が発生した

dockerイメージでMySQLを使用しようとしたら以下のようなエラーが出た

“`
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
“`

#解決方法:

docker-compose.ymlにplatform指定をする

“`
db:
platform: linux/x86_64 # M1チップ対応のため追記
image: mysql:5.7
container_name: app_db
“`

元記事を表示

PHP インスタンス変数のクラスを判定する

# 概要

– PHPにてインスタンスが格納されている変数(インスタンス変数)のインスタンス化元クラスを判定する方法をまとめる

# 方法1 型演算子(instanceof)の使用

1. 下記の様に記載することでインスタンス変数がクラス名を元にインスタンス化されたものならtrue、そうでなかった場合falseが帰る。

“`php
インスタンス変数 instanceof クラス名
“`

# is_a関数の使用

1. 下記の様に記載することで、インスタンス変数が当該のクラス、または親の一つに「クラス名」で指定したクラスが含まれる場合true、そうでなかった場合falseが帰る。

“`php
is_a(インスタンス変数, ‘クラス名’)
“`

# 参考文献

– [https://www.php.net/manual/ja/language.operators.type.php](https://www.php.net/manual/ja/language.operators.type.php)
– [https://www

元記事を表示

OTHERカテゴリの最新記事