- 1. Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
- 2. 【PHP フレームワーク】学習コストとリターンについて
- 3. PHPファイル(拡張子)をブラウザで確認する方法(VSCode)
- 4. スマートホームデバイス的な何かを作る
- 5. #1293 – Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
- 6. LaravelでEager Loadingしていたつもりが、まったくしていなくて泣いた
- 7. 【WPテーマ】ページ名|サイト名のtitleタグを出力する
- 8. PHP traitとは
- 9. 【PHP】PHP 基礎
- 10. Python,Ruby,PHP,Java,JavaScript,Perlの比較演算子の比較
- 11. PHP8.0の新機能を試してみた
- 12. PHP laravel 任意のルーティングパラメーターを設定する
- 13. 【Laravel】インスタンスの書き方
- 14. 【Laravel】データベースのトランザクションの書き方
- 15. PHP 条件演算子(三項演算子)の省略構文「??」を更に短縮して記載する
- 16. Xfree(php)でデータベース連携してデプロイする方法。
- 17. php require,require_once
- 18. 久しぶりの開発案件に参加してみて
- 19. エンジニア1年生奮闘記
- 20. ubuntu 22.04環境にnginx + php-fpmでLaravelアプリケーションを構築
Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
# Python
https://qiita.com/G-Rape/items/cd3f2f284ba990164564
# Ruby
https://qiita.com/SUZUKI_Masaya/items/eeea6cd36cc265d2dbf0
# PHP
https://qiita.com/mzmz__02/items/8bfbcf2cd48d9e9f2806
# Java
https://qiita.com/morioheisei/items/63088c61e8234dc1f7f5
# JavaScript
https://qiita.com/uhyo/items/cc92a553059274d85403
# Perl
https://perlzemi.com/blog/2
【PHP フレームワーク】学習コストとリターンについて
「プログラミングを始めたは良いけど、どこから勉強したらいいのか?」
「PHPのフレームワークは多いけど、どれを習得する?」プログラミングを始めたばかりだと、そもそも何から手を付けたらいいか分からない状況ってあると思います。
PHPは一通り理解したけど、その次マスターすべきフレームワークを何にするか。。。かくいう、私も当時は分からなかったので、とりあえず何でも覚えてきました。
(色々試してみて、cakePHP→Laravel→WordPress→Zend→Symfony→EC-CUBE→AWSと覚えてきました笑)メンターや師匠など業務面、勉強面でもサポートしてくれる人がいると、困らないです。
しかし、そういうサポートしてくれる人がいない時は、自分で調べ続けるしかありません。
そんな時に、次勉強するものを選ぶ時の考え方を書き残します。## 次に勉強するものの選び方
人生はゲームと同じです。
**何かをする時には、「コスト」が必要であり、今あるもの(リソース)から、どうやって支払い、レベルアップをするかです。**
ポケモンだったら、限られたお金でわざマシンやタウリンなどの強く
PHPファイル(拡張子)をブラウザで確認する方法(VSCode)
## はじめに
PHPファイルをブラウザで確認する方法を先程解決出来ましたので、記録としてここに残します。##### 補足情報
Mac(OS 12.5.1 Monterey)
PHP 8.0
Chrome
注)MAMPなどは使用していません。## 経緯
HTMLのサイトをコーディング中にVSCodeの拡張機能のLive Serverで.phpの拡張子のファイル(index.php)をブラウザにて確認しようとしたところフォルダ一覧の画面になってしまい、確認出来なかったため調べ始めました。
注)index.htmlなら問題無くLive Serverで見れる。## 見れなかった原因
調べたところ、Live Serverはサーバーサイドの言語を処理する機能を持っていないということが分かりました。(PHPはサーバーサイドの言語)参考サイト:[Visual Studio CodeでPHPファイルをブラウズできません
](https://teratail.com/questions/268757)## 解決に至るまで
まず上記参考サイトを見つけたのでそちらに書いてある下記のことを
スマートホームデバイス的な何かを作る
# 1.はじめに
前回の[OAuth 2.0 Server PHP と Google OAuth2.0 Playground を接続する](https://qiita.com/SSaitou/items/26fc907aa1ef9c5dba88 ) でOAuth2.0サーバーが使えるようになったので、本稿ではデバイスのような振る舞いをするものを作って行こうと思います。正確にはデバイスを管理するスマートフォンアプリ的なものです。デバイスがあるかのような応答をさせようというものです。あくまでもテストとして。流れとしては以下の通りです。
1. アカウントリンクを作成する
2. フルフィルメントを登録する
3. モックアップを作る
4. グーグルホームアプリに登録するフルフィルメントは要するにAPIですが、とりあえず応答らしきものをするモックアップを作成し、デバイスとして登録されることを本稿の目標にします。
# 2.アカウントリンクを作成する
アカウントリンク実装についての概要は[ドキュメント](https://developers.google.com/assistant/s
#1293 – Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Xfreeのサーバーを使ってPHPファイルとphpMyAdminを連携してデプロイに上記のエラーが発生しました。
原因としてはXfreeのmyadminのバージョンが低いため上記のエラーが発生しました。
Xfreeのバージョン(phpmyadminのバージョン)
5.0.95localhostのバージョン(phpmyadminのバージョン)
5.1.0原因
phpMyAdiminのバージョンが古いため、CURRENT_TIMESTAMPが1つしか使えないため対策
CURRENT_TIMESTAMPを1つにする。
php MyAdminの構造をクリックして
タイプカラムを「datetime」へ全て変更する。
デフォルト値カラムを1つは「TIMESTAMP」残りは「null」に変更する。
他にテーブルがある場合も同様の対応をする。
LaravelでEager Loadingしていたつもりが、まったくしていなくて泣いた
普段LT会のネタ用に取っておいたりするのですが、**感情が爆発**しているので産地直送でお届けします。
追記:**未解決**でしたが**解決**しました
# 泣くことになった経緯
趣味で「[かどで日記](https://kadode.usuyuki.net)」という日記サービスを運営していて、そこでのお話です。
## 戦犯となるページ
指定した月の日記を表示するページです。何の変哲も無いですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621241/6a234746-e8b1-1a70-4ff8-5f2af5bf0974.png)## 環境
Laravel:9系
PHP:8.1**今回の登場人物となるテーブル**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621241/0b3cc0fd-4f10-cc63-d2d
【WPテーマ】ページ名|サイト名のtitleタグを出力する
## 概要
WordPressテーマの開発において、titleタグを次の形式のように出力する方法を紹介する。
“`html
サイト名
ページ名|サイト名
“`## 課題
サイト名:テックブログ
ページ名:【WPテーマ】ページ名|サイト名のtitleタグを出力する
WordPressテンプレートタグのwp_titleは次の文法である。
“`php
“`titleタグ内にページ名|サイト名を出力するためwp_tit
PHP traitとは
## traitとは
– php5.4以降で導入
– 単一継承言語(PHPなど)でコードを再利用するための仕組みの一つ
– メソッド群を異なるクラス階層にある独立したクラスで再利用が可能– **多重継承などの問題を回避することができる**
– **クラスと似ているがいくつかの機能をまとめるだけももの**
– **継承クラスと同様にインスタンス作成は不可**
– 継承しなくても他クラスでも使用可能
– 優先順位
– **現在のクラスのメソッド>トレイトのメソッド> 継承したメソッド**[PHP: トレイト – Manual](https://www.php.net/manual/ja/language.oop5.traits.php)
## 使い所
– 機能をパーツとして使いたい場合
– Interfaceと一緒に使うことでデフォルトの実装を提供したい場合
– 機能をグルーピングすることによって、可読性を向上させたい場合## 使い方
– 定義クラス
“`php
trait トレイト名 {
function メソッドA() {
// 処理
}
【PHP】PHP 基礎
## 概要
PHPの基本文法についてまとめました!
ご指摘等あればぜひお願いいたします。## はじめに
“`index.php
“`というようにすることでphpとして出力する事ができます。 ## echo
phpの中でもかなり重要な`echo`について解説します。
“`index.php
“`
上記のように`echo`の後に半角スペース区切りで値を指定すると、値が出力されます。phpでの出力というのはHTMLへ書き込むということです。そして、phpは文の終わりに必ず`;`セミコロンをつけてください。
phpでは、シングルクォーテーション`”`やダブルクォーテーション`””`で囲まれた値は、`文字列`というデータとして扱われます。ちなみに文字列というデータは、`string型`と呼ばれます。プログラミングにおいて`型`という概念は非常に大切なので後に解説します。
## 変数
変数というのは、データを一時的に保存できる箱というイメージです。
`
Python,Ruby,PHP,Java,JavaScript,Perlの比較演算子の比較
Python,Ruby,PHP,Java,JavaScript,Perlの比較演算子の比較
# Python
https://qiita.com/G-Rape/items/cd3f2f284ba990164564
# Ruby
https://qiita.com/yusuke_blog1026/items/ab33bdfa495597d04f0b
# PHP
https://qiita.com/yukachin0414/items/cfb02cbbdd31a52902e8
# Java
https://qiita.com/takahirocook/items/748990882f2de7a630a1
# JavaScript
https://qiita.com/miriwo/items/e9ca0a2779ed2c8117c3
# Perl
https://perlzemi.c
PHP8.0の新機能を試してみた
# はじめに
今更ですが、PHP8.0の新機能をいくつか試してみました。
試してみた新機能は以下です。
* 関数の名前付き引数
* union型
* match式
* nullsafe演算子それでは早速使用例や詳細を書いていきたいと思います。
# 目次
[1. 関数の名前付き引数](#1-関数の名前付き引数)
[2. union型](#2-union型)
[3. match式](#3-match式)
[4. nullsafe演算子](#4-nullsafe演算子)
[5. おわりに](#5-おわりに)# 1. 関数の名前付き引数
関数を実行する際に引数を名前で指定できます。
任意の順番で引数を渡せるため、デフォルト値をもつ引数をスキップできます。“`php
PHP laravel 任意のルーティングパラメーターを設定する
# 概要
– laravelで任意のルーティングパラメーターを設定する方法をまとめる。
# 方法
– 絞り込みなどでURLに任意のパラメーターを含めたいとき下記ようにルーティングを記載する(yearとmonthは合ってもなくても当該のページが表示できる。)
“`web.php
// シングルアクションコントローラーのコントローラー指定方法なので通常とは異なる
Route::get(‘/Foo/Bar/{year?}/{month?}’, HogeHogeController::class)
“`– 上記のようにしておけば`/Foo/Ber`にアクセスしても`/Foo/Bar/2022/10`にアクセスしても同じページが開く。
【Laravel】インスタンスの書き方
## モデルの処理はインスタンスで呼出します
MVCの概念として、長尺になりやすいデータベースの操作コードは
モデルに記述し、コントローラーに呼び出すのがお作法です記述したコードはコントローラーでインスタンス化し
変数に代入することで中身の関数を利用できます。## インスタンスとは何?
インスタンス化とは、設計図(クラス)を具現化したものを指します。
実際のコードはModelに存在するため、コントローラーで利用するためには
具現化する必要があります。具現化するには任意の変数名に代入するだけでよいため
中身の関数を利用するためには、アロー関数(->)で中身を指定します**modelファイル**
“`phpclass モデル名 extends Model
{
public function 任意の関数名($引数名){
// データベースを操作するコードを記述します}
}// 実際に記述した場合の例
class Tests extends Model
{
public test_
【Laravel】データベースのトランザクションの書き方
## トランザクションを実行するtry~catch処理
トランザクションとは処理をひとまとめにすることで
途中でエラーが発生した場合に
処理全体を中断ではなくキャンセルすることができます“`php
use Illuminate\Support\Facades\DB;
// トランザクション開始
class コントローラー名 extends Controller
{
DB::beginTransaction();try {
// 例外が発生する可能性のあるコードを記述します
// データベースの操作コードや
// インスタンスの呼出コードなどを記述しますDB::commit(); //データベースに反映します。
} catch (Exception $e) {
// 例外が発生した場合に行う処理を記述します
// $eは任意の名前の変数です
PHP 条件演算子(三項演算子)の省略構文「??」を更に短縮して記載する
# 概要
– 条件演算子の省略構文を更に短縮して記載する方法をまとめる
# 方法
– 下記のような処理があったとする。(`$str_1`がnull以外の場合、`$str_1`に`$str_1`の値をそのまま格納する。`$str_1`がnullだった場合、`$str_1`に`$str_2`の値を格納する。)
“`php
$ str_1 = $str_1 ?? $str_2;
“`– 上記と全く同じ処理を下記のように記載する事ができる。
“`php
$str_1 ??= $str_2;
“`
Xfree(php)でデータベース連携してデプロイする方法。
先日作ったtodoアプリをXfreeを使ってデプロイしたので、
デプロイ方法とその時の注意点についてまとめたいと思う。▼1
1.Xfreeにログインする。
2.管理パネルページよりPHP・MySQLの管理パネルでログインをする。
3.サーバー管理パネルのPHP・MySQLサーバーよりデータベースのMySQL設定をクリック
4.「MySQL追加」 のデータベース名、文字コードを作成
5.「MYSQLユーザ設定」の ユーザ名、パスワード
6.「phpmyadmin」をクリック
※phpmyadminは動き遅いため、注意が必要です。
7.普段使いしているMySQLからデータベースをExportする
8.ExportしたSQLをXfreeのSQLに流し込む。
※Xfreeのphpmyadminはバージョンが古いため、下記の2点の変更が必要。
・SQL内の「utf8mb4」 → 「utf8」に変更する。
/*!40101 SET NAMES utf8 */;へ変更する
※「current_timestamp」は
php require,require_once
phpでのrequire とrequire_onceの違い
・
・
require …ファイルを読み込み、読み込めなければエラー
require_once … ファイルを一度だけ読み込み、読み込めない時は処理を中止
・
・
親クラスのファイルを読み込むときはrequire_onceを使う。
↑
なぜそうなるのか気になるが…
分かる方教えてほしいです。
久しぶりの開発案件に参加してみて
# 経歴について
—
## 1社目
新卒として自社開発会社に入社(2年半在籍)
PHP(CakePHP 1)を使用したWeb開発を実施
規模が少なくコーディング規約などもなかった。
※良く言えば自由に開発が行える。—
## 現在
PHP(CakePHP 4)を使用したWeb開発を実施
規模は変わらないがコーディング規約などがしっかり決まっている。
そして、静的解析ツールなどをきちんと導入されている。—
## 今回の案件で初めて触れた技術
– Git
– 静的解析ツール(PHPStan)
– コードフォーマット(PHP-CS-Fixer)
– Redmine—
## 静的解析ツール(PHPStan)
### 検知できる問題点
1. 存在しないクラスをインスタンス化している。
2. 存在しないメソッド、関数を呼び出している。
3. 参照しているクラス名の大文字小文字が定義と異なる。
4. メソッド仮引数とメソッド呼び出し実引数の型が一致しない。
5. メソッドに型宣言が指定されていない。
※型チェックをしてくれる優れものという認識です。https://ph
エンジニア1年生奮闘記
## はじめに
都内の受託開発企業でWEBエンジニアとして働いている**まさきち**といいます。異業種からWEB系エンジニア転職して1年が経ちますので、これまでを振り返りながら、経験したことや学んだこと、取り組んできたことについて話そうと思います。
## 目次
– この記事の対象読者
– 書いた人について
– 入社後の流れ
– 研修
– 保守業務
– 新規開発
– 身についたこと
– 技術力
– 報連相力
– 課題解決能力
– 取り組んで良かった事
– アウトプット(技術記事、アプリ作成、SNSでの発信)
– 社外エンジニアとの交流(勉強会参加、LT会参加)
– WEB系エンジニア転職を目指している方達へ
– みなさまからの質問
– 終わりに## この記事の対象読者
– WEB系エンジニアを目指そうと思っている方
– エンジニアなりたての方
– 最近の駆け出しエンジニアの動向を知りたい方## 書いた人について
エンジニアに転職する前は、製造業で自動車関連の部品の設計、製作を行なっておりました。
IT技術の進化
ubuntu 22.04環境にnginx + php-fpmでLaravelアプリケーションを構築
# 概要
サーバにインストールしたUbuntu 22.04環境で本番向けのLaravelアプリケーションを動かします。
nginxはhttpのウェブサーバで、php-fpmとはPHPのCGI(ウェブサーバでスクリプトを実行して、動的コンテンツを生成する仕組み)です。
今回はnginxをウェブサーバとして動かして、php-fpmと連携させることでLaravelのアプリケーションが動作するようにしていきます。今回は、dockerなどのコンテナは使用せずに、ubuntu上に直接必要なソフトウェアをインストールしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70029/b1646470-3bd5-9fda-6215-1577ddfba5bc.png)
# 必要なパッケージのインストール
## nginxのインストール
“`bash
$ sudo apt update
$ sudo apt install nginx
“`## PHPのインストール
“`