PHP関連のことを調べてみた

PHP関連のことを調べてみた
目次

JS (php smarty内 .tpl 記述) セレクトボックス、テキストボックス制御

## ■完成イメージ
・セレクトっクス入力可 、テキストボックス入力不可
![スクリーンショット (909).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/5d936710-fe1a-5cf6-0019-d8581b8a2b8c.png)

・セレクトっクス入力不可 、テキストボックス入力可
![スクリーンショット (910).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/39f14355-5018-9b6d-9a43-8ecf9a796baa.png)

## ■機能説明
・セレクトボックスに値が入っている場合は、テキストボックスは入力不可。

・セレクトボックスが「未選択(値がない)」の場合、テキストボックス入力可、かつテキストボックスへ文字が入っている場合は、セレクトボックス選択不可。

## ■ソースコード
“`JS main.js
document.addEventListener

元記事を表示

ループメニュー1をやっていく2

https://paiza.jp/works/mondai/loop_problems/loop_problems__rep_num_step1

Python
“`py
for _ in range(8):
print(3)
“`
PHP
Pythonと違うので未だに改行コードを入れないといけないことを忘れます汗
あと、改行コードは’’だとだめで””でないと展開されないみたいです

“`php

“`
https://paiza.jp/works/mondai/loop_problems/loop_problems__rep_num_step2

Python

“`py
N, K = map(int,input().split())
for _ in range(K):
print(N)
“`

PHP
“`php

元記事を表示

ざっくりとわかりやすくSOLID原則を学ぶ

## はじめに
社員の皆さんはこんな奴が最近エンジニアになって頑張ってるんだなと暖かい目で読んでいただければと思います。

社外の方やエンジニアを目指している方は少しでも学習の参考や、コネクター・ジャパンに興味を持っていただければと思います。

## 自己紹介
未経験から独学でプログラミング学習し5ヶ月でLaravelでポートフォリオを作成しました。そして現在は自社開発企業に入社し、WEBエンジニアとしてプロダクト開発に携わっています。

## この記事を書いた理由
エンジニアなりたての初心者の頃は、コードがごちゃごちゃになりがちでした。
しかし、オブジェクト指向の基本原則であるSOLID原則を学ぶことで、すっきりとしたコードを意識して書くようになりました。

オブジェクト指向は、うまく扱うことが出来れば保守性が上がり、修正対応や機能を新しく追加する時などに楽に対応できるようになります。

つまりコードの品質を保ちやすくなるんですよね。

しかしなかなか理解が難しいので、今回は私なりにプログラムをきれいに保つための「SOLID原則」を、初心者の方でも理解しやすいようにわかりやすい言葉で

元記事を表示

個人メモ

まとめ

[名前空間(自分用メモ)](https://qiita.com/imokenpi/private/1e73234de4621d484d1a “名前空間(自分用メモ)”)

[クラス(自分用メモ)](https://qiita.com/imokenpi/private/29b2a36a2c9884b0a118 “クラス(自分用メモ)”)

[HTTP通信GET・POST(自分用メモ)](https://qiita.com/imokenpi/private/a31468af84f722c59ec5 “HTTP通信GET・POST(自分用メモ)”)

[データ型の宣言とstrictモード](https://qiita.com/imokenpi/private/f67aaff774c455e5ee25 “データ型の宣言とstrictモード”)

[issetとempty](https://qiita.com/imokenpi/private/9102cc4f10bb69c99212 “issetとempty”)

元記事を表示

PDOでデータベースにアクセス

PHPでDBに簡単に接続できるPDOというものを使ってデータベースにアクセスします。
MANPを起動させphpMyAdminにアクセスしてDBを作ります。

## データベース用アカウントの作成
まず初めにデーターベースにアクセス可能なアカウントを作成していきます。
phpMyAdminのトップページにアクセス→上のタブのDataBaseをクリック→アカウントを追加したいデーターベース欄の権限をチェックする→画面下の方にあるユーザーアカウントを作成するをクリックします。

ユーザー名を入力→ホスト名をローカル→パスワードを入力→もう一度入力→権限の付与の選択→実行で完了です

## アカウントを使いDBを扱っていく
ここからコードを書いていきます。やっていきます。
“`php
$dns = ‘mysql:host=localhost;dbname=study;charaset=utf8’;
$name = ‘user’;
$pass = ‘password’;

try{
//データベース、ユーザー名、パスワードから接続をする
$dbh = new PDO($dns,

元記事を表示

Laravel Macroを使ってみる

# 環境
Laravel10(sail)
https://readouble.com/laravel/10.x/ja/installation.html
↑↑この通りにやればサクッと環境が作れる

Mac
Apple M1 Max
sonoma 14.2.1

# Macroとは?

> A “macro” in Laravel refers to the ability to add additional methods or features to various classes or framework components without altering the original source code.
>
> Laravel’s macro feature enables developers to enhance the capabilities of fundamental Laravel classes such as Eloquent models, collections, query builders, and others.

Laravel の「マクロ」

元記事を表示

【PHP】マイナーフレームワーク「Flow」を試してみる~AOP編~

# 初めに
前回は[こちら](https://qiita.com/nnhkrnk/items/77048e47018e602870d1)の記事で参照可能なファイルの扱いについてまとめました。
今回はFlowにおけるAOPの実装についてまとめます。

# (ざっくりと)AOPとは
ざっくりとAOPとは何かを説明します。(「知ってるよ」って方はスキップ推奨ですmm)
chatGPT様に説明をお願いしました(丸投げ)。

> AOP(Aspect-Oriented Programming)は、プログラム内の共通な機能(ログ記録、エラーハンドリングなど)を取り出して、それらを別のモジュールとして管理するプログラミング手法です。これにより、コードがよりシンプルで保守しやすくなります。アスペクトと呼ばれるモジュールが特定の機能を担当し、アドバイスと呼ばれる処理がコードに挿入されるポイントを指定します。 AOPは特に大規模なソフトウェアプロジェクトで有用です。

まとめると『**似たような処理はまとめて、自動で実行されるようにしようね**』ってことですね。

## AOPの例
あるプロジェクトで、*

元記事を表示

【PHP】MySQLに接続する方法(mysqli)

この記事では、MySQLにPHPから接続する方法、そしてSQL文を実行する方法を紹介します。

# 注意

この記事には、コード内には**おかしいコメントが**、コード外には**おかしい文章が**書いてあります。
笑わないように**十分に警戒してください**。

そして、この記事ではPHPのモジュールでmysqliが有効化(コメントアウトされていない状態)されていることを前提としています。

# やっていこう

テレレッテッテ、テレレッテッテ、テレレッテッテッテッテ!
PHPクッキングのお時間です。
今回は、「PHP」に、「MySQL」というご馳走を食べさせるために、「MySQL」を作っていこうと思います。

まずは、PHPソースを1つと、プログラムエディタを1つ用意します。
おすすめのプログラムエディタは、VSCodeです!

まず、お好みのPHPソースを用意して、以下のソースをトッピングします!

“`php:接続.php

# 製品情報(接続情報)を入力

$mysqli = new mysqli(“発売元(正式には接続先)”, “生産者(正式にはユーザー名)”, “MySQL

元記事を表示

Oracle plsql ,PDFがアップデートされたかチェック 02

## ■環境
・PHP7.4
・Linux(RedHat 8.6)
・Smarty2.4.6
・oracle12
・PLSQL
## ■完成イメージ
1:アップロード
![スクリーンショット (904).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/0b5d64a5-4755-3a57-b089-263d5abd53c2.png)
2:アップロード後
![スクリーンショット (908).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/9b2b4c49-3fbd-f57d-4da1-bbdc569b393c.png)

## ■機能説明
### 機能
・PHPから plsqlのプロシージャを呼び。
・プロシージャで、一時テーブル(テンポラリーテーブル)へPDFのアップロード情報を格納。
・PHPでプロシージャの一時テーブルの情報をSELECTして、配列へ格納。
・.tplで配列とのチェックを行う。

元記事を表示

Testlink : テスト進捗をグラフ化する

Testlink の DB に記録されたテスト実施データからグラフを生成する手順について解説します。

# Testlink DB のアクセス

まず Testlink DB に接続する必要があります。
Testlink Root の config_db.inc に Testlink Database への接続情報が記載されています。

“`config_db.inc.php

“`

# グラフ化手順

テストの実行結果は Testlin

元記事を表示

ループメニュー問題を解いていく1

https://paiza.jp/works/mondai/loop_problems/loop_problems__print_num_step1

python
“`py
for i in range(10):
print(i+1)
“`
PHPは仕方ないけど行数多くなってしまうな

“`php

“`
じゃ次

https://paiza.jp/works/mondai/loop_problems/loop_problems__print_num_step2

python
“`py
for i in range(int(input())):
print(i+1)
“`
PHPだと、pythonのように直接入れ込む、ということはできないようです。
つまり下の`$i<=$N`の部分を`$i<=fgets(STDIN)`のようにはできないようです。 何故か調べてますがなかなかそれらしきものは見つからず。 仕方ないのでこ

元記事を表示

Amazon Linux 2023 で PHP Redis エクステンションをコンパイルする

Graviton な Amazon Linux 2023 で PHP8.2 を利用しています。

ElastiCache の Redis でセッションを使いたいと思ったんですが、2024年1月時点で、Amazon Linux 2023 のレポジトリには用意されていませんでした。

いろいろ頑張って調べましたが、自分でコンパイルしたほうが良さそうです。

ということで、コンパイルしてみました。

## 前提条件

すでに他の PHP 8.2 本体やエクステンションはインストールされていると想定

## STEP 1. GitHub に機能要望を送る

GitHub の機能要望の[該当 Issue](https://github.com/amazonlinux/amazon-linux-2023/issues/328) がまだオープンだったら、 “I want it too!” とコメントをする

コンパイルしたくない!

## STEP 2. コンパイルツールをインストールする

php-devel, gcc, make や git をインストールする

“`
sudo dnf ins

元記事を表示

【Laravel】外部キー制約を追加したテーブルでシーディングをするとエラーが発生する

## きっかけ
シーディングを行ったら、SQLのエラーが発生した。詳細は以下の通り。
### 作業手順
1. Usersテーブルの`ID`カラムとTweetsテーブルの`user_id`カラムを関連づけるために、Tweetsテーブルの`user_id`カラムに外部キー制約を付ける。
2. UsersテーブルとTweetsテーブルのシーディングを実行する。
(以下のようなデータをTweetsテーブルに格納する。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3323019/505b9694-8c33-7736-9878-6bf97a1bae81.png)

### エラー
“`
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails(`example_app`.`tweets`, CONSTRAINT `t

元記事を表示

積の最小化

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_boss

前回の問題を教訓に
どちらかが0の場合は問答無用に0が最小になるので
こんな感じで書いてみました。
つまり、最初の数値を基準に、小さくなったらそれを採用するみたいな感じですね。
で、A~Bの間をループさせると。負の数が含まれていても結局あんまり関係ないなということで
こうなりました。

“`py
A,B = map(int,input().split())
result = 0
for i in range(A,B+1):
for j in range(A,B+1):
if A == 0 or B == 0:
break
if result == 0:
result = i * j
elif result > i * j:
result = i * j

print(result)
“`
でも解答の場合は、もうちょっとロ

元記事を表示

タイルの敷き詰め

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step8

“`py
H,W = map(int,input().split())
if H > 0 and W > 0:
if H % 2 == 0 and W % 2 == 0:
print(‘YES’)
else:
print(‘NO’)
else:
print(‘NO’)

“`

最初は最初のif文なかったんだけど、
テストケースでHやWが0だったときにこれだめなんですよね。
で最初のif文を付け加えたら正解になりました。

ちなみに、上のは入れ子になってますが、最初のif文を逆にしたらelseがいらなくなります。
(ということに今気づいた)
ただし、この場合、andだとだめでorにしないとどちらかが0の場合にNoにならないです。

“`py
H,W = map(int,input().split())
if H == 0 or W == 0:

元記事を表示

IT業界未経験からPHP⇒Python⇒Java⇒VBA、XMLと学習言語と転職フェア会場をうろうろして感じたこと

自分の学習言語ロードマップのうろうろ歴

無事とある**PHP、Laravel**を中心とする半年のカリキュラムを課す民間のプログラミングスクールを修了し、転職フェアなどにも何回か参加してみたところ、「**実はプログラミング言語の需要には地域差がかなりある**」ということを知り(下記参照)、エッ…(゚Д゚)と思いながら、時代はAIだろ(´д`)と思って、**Python**をやってみたら少しは分かったけど、居住地域の関係で **Java**も併行し始めたけど、Pythonを使うかな(´。`)と思って内定をいただいた会社の自分の所属する部署では一番使うのは **VBA、XML** とのことで、今は急遽ExcelやVBAを触りまくっています。

①実は地域によってプログラミング言語に需要ニーズに違いがある。(-_-;)

〇転職活動を通して感じた地域の言語ニーズの差異に関する私見

(1)求人がどの地域も万遍なく一番多いのは**Java、意

元記事を表示

終了判定 2 Python3編

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step5

さて久しぶりにPythonから。
ここでwhileを使いました。たぶんpythonでPaizaやり始めてから初めてじゃないかな。

“`py
N,K = map(int,input().split())
cnt = 0
while N < K: cnt += 1 N = N * 2 print(cnt) ``` ところでなんで、+=は知ってるのに、*=はなぜしなかったの?と自分で自分を突っ込んでしまった。いやおっしゃるとおり。 こうですね。 ```py N,K = map(int,input().split()) cnt = 0 while N < K: cnt += 1 N *= 2 print(cnt) ``` とりあえずphpでもやっておきます。 ```php5

元記事を表示

クラスって結局何なのよ@PHP ~ふわっとイメージ共有~ 

## 背景
phpでCRUD処理を書いていると、`->`や`=>`や`::`といった記号が出てくる。調べれば意味は分かるもののを実際に意味を理解して使わないと気持ちが悪い!
のちにフレームワークを使用するとPHPの処理は大概の煩雑な処理は`よしなに`こなしてくれるらしいのですが、使いこなすためにはクラスについて知っておく必要がありそうです。

また、クラスって勉強してみても始めはよくわからない人が多いと思います。
まずはイメージするところから。。

## 簡単なクラスの例(使われ方を中心に考える)
### やってみて理解した->の意味
※厳密な言葉の定義は自信がないです。ちゃんとした説明が見たい方は調べてみましょう。
>**Don’t think, feel…**

でお願いします…まずは自分に都合の良いイメージで理解することから。違ったら正せばよいのです。

それでは、適当な例を出してみます。
#### 1. クラスを呼び出す!【インスタンス生成】
ここにとあるクラス`$Aclass`があるとします。

元記事を表示

PHPとPythonの比較勉強ー複数行にわたる入力 (paizaランク D 相当)

https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step3

PHPを仕事であんまり使わなくなって今Pythonをやっているんですよね。
で、やらなくなっているとなんというか腕が鈍ってしまったりしまして。
それだとだめだなと思ったので今年から1日1回はPHPも解くようにしました。

ひとまずPythonで書いてみます

“`py

n = int(input())
for _ in range(n):
print(input())
“`
簡単ですね。
では次にPHP

“`php

“`
一応正解はしたのですが。
fgets(STDIN)で取得したものはtrimしないといけないみたいです。
なんでなのか調べたら、どうやら、入力されたときの改行を除去するため、という
意味があるそうです。
問題

元記事を表示

【Laravel】多言語化のための言語ファイルをコマンドで出力する

Laravel の多言語化対応をすることになったのですが、どうやら CakePHP とは違い標準で翻訳文字列を配列なり json なりで一括出力する方法は用意されていない模様。そんなことある…?

packagist で適当に「laravel trans」とか入れて検索し、適当にというか簡単に言語ファイルを出力できそうなパッケージを検索。それっぽいパッケージを見つけたので使いながらメモ。

## kkomelin/laravel-translatable-string-exporter

### インストール

通常、本番環境で使う事はないと思うのでオプション –dev でインストール

“`bash
composer require kkomelin/laravel-translatable-string-exporter –dev
“`

### 言語ファイルの出力

専用の artisan コマンドが使えるようになるので、そちらを実行する

“`bash
php artisan translatable:export

# example
# 英語の言語

元記事を表示

OTHERカテゴリの最新記事