[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/11 12:00 / Filesize : 340 KB / Number-of Response : 1015
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 7



1 名前:デフォルトの名無しさん(ワッチョイ 1342-Xqtn) mailto:sage [2016/11/09(水) 11:03:26.15 ID:eAjeihOa0.net]

PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 5(実質6)
echo.2ch.net/test/read.cgi/tech/1462971286/

次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

751 名前:デフォルトの名無しさん (ワッチョイ bf17-bE/B) mailto:sage [2017/02/01(水) 21:16:11.38 ID:+ImP5E6S0.net]
>>740
あんまりその辺理解しないでMAMP使おうとしたのがそもそもだめだったのね
別の言語で環境とかでめんどくさい思いしたから楽できるなら楽しようかと思ったのが間違いか

>>741
一応、Linuxのエンジニアだからそっちの知識はそれなりにあるんだけど、
さっとPHPの本とか勉強して簡単なものなら作れるくらいになりたいなーって思って

ま、出直してきます

752 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/02/01(水) 21:23:04.08 ID:LECYUBIq0.net]
>>742
Linuxのエンジニアの癖にwhichも知らんとかうっそだろお前

753 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/02/01(水) 22:44:15.69 ID:yFAqAUso0.net]
>>742
Linuxエンジニアなら、尚更mamp使う必要ないし
vagrantなり、VM環境でやったほうがいいよ

754 名前:デフォルトの名無しさん (ワッチョイ bf17-R94c) mailto:sage [2017/02/01(水) 23:02:41.06 ID:+ImP5E6S0.net]
>>743
ホントでっせ
whichはわかるが、今回のお悩み解決に自力で繋がらなかったからここで聞いたんよ、許して

>>744
アドバイス通りさっきsuseさんでphp7の環境作った!楽しようとしたのがあかんかった
実務で使うわけじゃないがmampで本番環境とか動かしてるところなんてなさそうだし
自分で環境作るってのは大事な勉強と痛感いたしました

755 名前:デフォルトの名無しさん (ワッチョイ 6f42-P4zY) mailto:sage [2017/02/01(水) 23:10:31.30 ID:OMBPerng0.net]
>>727
よくあるトラブルとしては、環境変数周りかな
localとサーバーで違ったりするから

あとexecだと、パスが違うとか、インクルードがうまくできてないとかも多いけど
エラーログとかに普通は何か出てるからわかると思うが

756 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) [2017/02/01(水) 23:23:53.32 ID:sVMiC1ZCa.net]
たびたび質問失礼します。掲示板を作っているのですが10件ごとに表示するには
どのように書けば良いでしょうか。現行では

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<?php
function h($str) {
return htmlspecialchars($str, ENT_QUOTES);
}
$rows = json_decode(file_get_contents('back.json'), true);
if (!empty($_POST['write'])) {
$row = array(
'A' => $_POST['A']
);
array_unshift($rows, $row);
file_put_contents('back.json', json_encode($rows));
}
?>
<?php foreach($rows as $r): ?>
<p><?php echo h($r['A']) ?></p>
<hr>
<?php endforeach ?>
</body>
</html>

このような形になっております。色々調べてたのですが書き込み内容を一度格納してから
表示する場合でのやり方が分からず悩んでいます。どうか宜しくお願い致します

757 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) [2017/02/01(水) 23:35:28.37 ID:sVMiC1ZCa.net]
>>747
追記です
掲示板のhtml等は入りきらないので省略しております []
[ここ壊れてます]

759 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/02/01(水) 23:36:54.53 ID:ciQGnh7G0.net]
すでに存在してるサンプルで勉強したほうがいい



760 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/02/01(水) 23:40:56.03 ID:ciQGnh7G0.net]
いまぐぐってみたところ。


PHP と SQLite を使った掲示板
https://oku.edu.mie-u.ac.jp/~okumura/php/sqbbs.php

PHP+SQLite3で2ちゃんねるっぽい掲示板を作る - Qiita
qiita.com/torokko/items/8a07519782f01a68c627

PHPとSQLiteで簡易BBSの作成 | 勉強したことのメモ
taitan916.info/blog/?p=1923

八角研究所 : PHPで週末プログラミング(1) - 掲示板を作ってみよう(1)
www.hakkaku.net/articles/20080818-260

jQueryとPHPとSqliteを使ったAjaxのシンプルなチャット
picxpic.com/?p=104

SQLite 簡易掲示板
rrr-kb.grrr.jp/php/sqlite_bbs/index.php

掲示板 UTF-8版PHP掲示板,画像ファイル他アップロード,スマホ対応,PHP7対応,スパム対策
www.vector.co.jp/soft/unix/net/se453023.html
.

761 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/02/01(水) 23:57:07.31 ID:yFAqAUso0.net]
>>747
デバッグ方法を参考までに教えます。

$rows = json_decode(file_get_contents('back.json'), true);
# $rowsにはデータは格納されているか確認する
var_dump($rows);exit;

問題なければ、
if (!empty($_POST['write'])) {
# ここを通過しているか
# $row配列を作る前に、適当にechoしてみる。
# exitもすること。

問題なければ、
file_put_contentsされているかを確認

中身のデータがどうなっているのか、
順序もって確認してみましょう。

ここまでできれば道は開かれる。

762 名前:デフォルトの名無しさん (ワッチョイ 13d4-xTzd) mailto:sage [2017/02/02(木) 00:09:14.77 ID:Vu6mO5aQ0.net]
データが配列に入ってるぽいからarray_slice()で10件取り出すとか

763 名前:デフォルトの名無しさん (アウアウウー Sa07-gztn) [2017/02/02(木) 00:52:50.08 ID:8sL76eTEa.net]
>>750
わざわざありがとうございます。もちろん参考にはさせていただきたいのですが
あくまで一度格納したデータを書き込んだ上で件数ごとに表示させたいのです
その先行事例が見つけられず・・・もちろんそもそも参考にできないのも力不足ゆえですが

>>751
ありがとうございます。すみません、デバックというのもやったことが無いのですが
このコードを書き込んでサイトが表示されれば問題が無いというようなことでしょうか?

>>752
ありがとうございます
調べたのですがどのように使えば良いか検討つきません・・・
この場合、<?php foreach($rows as $r): ?> の部分から変える必要があるという事でしょうか

764 名前:デフォルトの名無しさん (ワッチョイ cf7b-gPBI) mailto:sage [2017/02/02(木) 01:31:57.69 ID:QtNjUxgZ0.net]
homebrew を使わなかったら、パッケージの依存関係を管理できない。
Linuxでもdeb/rpm を使わなかったら、何もできない

パッケージマネージャーを使わないで、自分でパッケージを入れるなんて、100%無理だろ。
複数のパッケージのインストールの順番が異なるだけで、違ってくる。
ABC, BCA という順番では、結果が違うし、そんなことまでユーザーがわかるわけがない

Chef, vagrant, Docker などのレシピを取ってくればいい

Chefのレシピも結局は、OSの種類を見て、debian系ならdeb、RedHat系ならrpmを使うから、
ユーザーは、個別のパッケージマネージャーを意識しないで済むだけ

765 名前:デフォルトの名無しさん (ワッチョイ 03c1-yene) mailto:sage [2017/02/02(木) 04:01:01.54 ID:ICaoPi9S0.net]
>>745
何ていうかPHPの初心者ってだけなら分かるけどLinuxのエンジニアがその程度の問題を解決出来ないのは許されねぇと思うわ

766 名前:デフォルトの名無しさん (ワッチョイ c346-1ST5) mailto:sage [2017/02/02(木) 12:25:55.17 ID:sBmZcLbl0.net]
>>753
で、751が書いてくれてる
var_dump($rows);
exit;
は実行してみた?

752が書いてくれてる
array_sliceのPHPマニュアルを読んで
print_r($rows, 0, 2);
とかは試してみた?

もしそれすら試さずに質問してるなら
ハッキリ言うけどプログラミングには向いてないわ
手遅れにならないうちに違う道に進むことをおすすめする

767 名前:デフォルトの名無しさん (ワッチョイ b3c9-C7TH) [2017/02/02(木) 15:08:51.61 ID:t2qREDFK0.net]
例外を別のファイル(呼び出し元)で受けたいのですが、どのように例外と判断すればよいのでしょうか?
a.php//呼び出し元
<?php
$hoge = new classB();
$result = $hoge->get();
// この$hoge->get()でエラー発生(PDOでの接続エラーとか)
// エラーをa.phpで処理(エラー内容の取得と、エラーメッセージ表示)したい
?>
b.php//呼び出される側
<?php
class hoge
{
function get(){
try {
//pdoで接続とか
} catch (PDOException $e) {
//サイトとかの例だと、ここでエラーメッセージ等の処理をしてしまいます。
//呼び出し元のa.phpで、エラー時の処理をしたいのです。
 }

}
どなたか教えてください。

768 名前:デフォルトの名無しさん (ワッチョイ c346-1ST5) mailto:sage [2017/02/02(木) 15:15:09.65 ID:sBmZcLbl0.net]
>>757
例えば
Bで期待された結果が得られた時は”○”と出力
そうでなければ”×:例外内容”を出力
AはBの出力結果(○ or ×)によって処理

○とか×は例で書いただけで実際はHTTPのステータスコードみたいに
200ならOK とか 50Xならエラーとか
きちんと仕様を決めるといい

web APIとか扱ったことないのかな?
あれと同じことだよ

769 名前:デフォルトの名無しさん (ワッチョイ 03c1-4SR0) mailto:sage [2017/02/02(木) 16:01:33.97 ID:ICaoPi9S0.net]
>>757
例外はレイヤーで設計する
低レベルAPIが投げた例外は高レベルAPI内部でキャッチして集約(元々の例外は$prevでチェーン)
或いはキャッチしたAPIで処理し切る(復旧するなり落とすなり)

いずれにしてもどのレイヤーが何処までの例外に対応するかは決めておかにゃならん
途中でキャッチしてエラー吐く処理して親に例外通知しないならそこで例外処理は完結していなければならない

例外安全とかも考えるべし



770 名前:757 (ワッチョイ b3c9-C7TH) mailto:sage [2017/02/02(木) 18:02:37.06 ID:t2qREDFK0.net]
>>758
web APIとか扱ったことないです。
>>759
すみません。おっしゃることの半分も理解できません。
a.phpでエラーが起きているのかどうか、エラー内容も知りたいのですが・・・。

もし初心者向けの質問スレがありましたら、ご紹介してもらえませんか?
ちょっと探したのですが見つかりませんでした。

サイト検索すると、例外処理は、例外の発生したファイル(箇所)で
行うのばかりで、他のファイルで処理する方法が見つけられませんでした。

771 名前:デフォルトの名無しさん (ワッチョイ d356-1ST5) mailto:sage [2017/02/02(木) 18:06:19.95 ID:I2XsCSbD0.net]
758の内容が理解できないならYahoo知恵遅れとかのがいいと思う

772 名前:デフォルトの名無しさん (ワッチョイ 8f5b-1ST5) mailto:sage [2017/02/02(木) 18:24:29.29 ID:5vn48hDV0.net]
>>757
ちょっと質問の意図がわからんのだが
a.phpでエラーが出ているの?
catchのPDOExceptionをa.phpに表示させたいの?

まずやりたいことを教えてくださいな

773 名前:デフォルトの名無しさん (ワッチョイ 8f5b-1ST5) mailto:sage [2017/02/02(木) 18:30:28.72 ID:5vn48hDV0.net]
>>757
追記すると、
PDOExceptionで吐かれたエラーを
そのままechoさせないで、変数なり渡す
それをa.phpで$resultが判定

catchでどんな書き方してるかわからんけど
要領としてはこんな感じ

ただ、これをする意味があるのかは不明

774 名前:デフォルトの名無しさん (JP 0H07-4SR0) mailto:sage [2017/02/02(木) 18:32:25.93 ID:yqvkGsV5H.net]
>>760
親に例外通知したいなら例外をキャッチしないか, キャッチした例外をそのまま投げ直すか, キャッチした例外を高レベルの例外でラップして投げるかの何れか

775 名前:デフォルトの名無しさん (ワッチョイ a3f8-0MWP) mailto:sage [2017/02/02(木) 18:49:28.99 ID:bt5fyjk60.net]
get()のとこでしないでa.phpで例外処理するだけ

776 名前:デフォルトの名無しさん (ワッチョイ d3a0-TTqS) mailto:sage [2017/02/03(金) 01:16:26.70 ID:5q5mSgpk0.net]
>>684です。
PEARやHTTP_Request2をなんとか準備して一先ず、ブログに記事をアップロードできるようになりました。
ですが、いくつか問題が残りました。

1本文はすべて「記事を書く」に入ってしまい「続きを書く」に入れることができない。
2画像をアップロードして、ブログ上での画像のURLの取得方法がわからない。
3タグが追加できない。

1と3も問題ですが、2ができないと非常に困ったことになります。
何か良い方法はないでしょうか?

777 名前:デフォルトの名無しさん (ワッチョイ 8f5b-1ST5) mailto:sage [2017/02/03(金) 03:58:43.49 ID:Ixnwxz7P0.net]
>>766
状況わからないけど
ブログからどういう形式でデータを取得してるの?
APIでやってるの?

778 名前:デフォルトの名無しさん (ワッチョイ d3a0-TTqS) mailto:sage [2017/02/03(金) 10:56:49.07 ID:5q5mSgpk0.net]
正直、初心者過ぎて何やってるのかほとんどわからない
とりあえず
https://github.com/seiyaan/LiveDoorBlogAtomPub
output-ism.info/2014/03/08/1561/
でアップロードは確認できた。
主に下のやつでいろいろ試している状態

779 名前:757 (ワッチョイ b3c9-C7TH) mailto:sage [2017/02/03(金) 11:15:01.38 ID:eixaQSD90.net]
>>764,>>765
ひょっとしてエラーは呼び出し元へ戻ってくるのでしょうか?
b.phpのクラスhoge->get()で起きたエラーは、呼び出し元のa.phpで、
try { $hoge->get();}
catch (PDOException $e) {
echo $e->getMessage();
}
とすれば、hoge->getでのDB接続エラーを捕捉できるということでしょうか?



780 名前:デフォルトの名無しさん (ワッチョイ 6f50-cqZ0) [2017/02/03(金) 12:47:01.16 ID:Nsh1g7Ol0.net]
>>746
サーバーの設定やらなんやらいじったらしばらくサイトが表示されなくなってしまって対処してました。。
環境変数やパスは確認済みで、考えられるのはsocket周りかなとは思うんですけど、ini等で変更してみても上手く行かないんですよね
ググってもその例が出てこなくてどうにもならない。。
目的は非同期の別プロセスで重い処理をしたいので、もう少し調べてみてダメだったら諦めてajaxでやろうかと思います

781 名前:デフォルトの名無しさん (ワッチョイ c359-0MWP) mailto:sage [2017/02/03(金) 14:18:44.41 ID:XND6iDtO0.net]
まだ直せないのかエンジニア

782 名前:デフォルトの名無しさん (ワッチョイ 33ce-0MWP) mailto:sage [2017/02/03(金) 15:23:46.05 ID:ZDAGU2jx0.net]
インスタンス生成時に複数のメソッドを実行する場合

function __construct()
{

783 名前:772 (ワッチョイ 33ce-0MWP) mailto:sage [2017/02/03(金) 15:25:20.61 ID:ZDAGU2jx0.net]
書き込み押しちゃいました

function __construct()
{
$this->a;
$this->b;
}

public function a() {}

public function b() {}

といった使い方をしてもいいんでしょうか?

784 名前:デフォルトの名無しさん (ワッチョイ d356-1ST5) mailto:sage [2017/02/03(金) 16:32:04.20 ID:AZd6IUX40.net]
逆に何でだめだと思ったの?

あと好みの問題かもしれないけど

public function a() {
  return $this;
}

public function b() {
  return $this;
}

みたいにしておくと
$this->a()->b();
みたいにメソッドチェーンできてスマートかな

785 名前:デフォルトの名無しさん (ワッチョイ 33ce-0MWP) mailto:sage [2017/02/03(金) 16:42:27.65 ID:ZDAGU2jx0.net]
>>774
レスありがとうございます

__construct内でプロパティの初期化以外の実例が見つけられなかったので
一般的には使われていないのかと思いました

786 名前:デフォルトの名無しさん (ワッチョイ 03c1-yene) mailto:sage [2017/02/03(金) 20:29:36.44 ID:Y5WAIXu10.net]
>>769
例外は「キャッチされない限り」コールスタックを遡り続ける

throw new Exception();

で例外は投げられるから自分で挙動を確かめてみるといい
(勿論実用上はExceptionかその子孫を継承した例外クラスを実装して投げる)

787 名前:デフォルトの名無しさん (ワッチョイ 1342-vqxm) mailto:sage [2017/02/03(金) 23:26:01.79 ID:nOd+Bj3o0.net]
>>770
あーなるほど、バックグラウンドで動かすってやつですね。
sshで入ってコマンドラインで実行するとOKで
execで動かすとダメ、ということだと、やっぱり環境変数関連が一番怪しいかな

execに限らないけど、バッチとかでphpを動かす時は
まずカレントが違う可能性も高いかな。なるべくフルパスで指定するようにしてたな。
環境変数も最低限しか設定されてないので、環境変数に依存するのはやめた方がいい(MySQLの接続先を環境変数でやるとかよくあるから)
もしくはシェルスクリプト作って、その中で export するとか
まぁ相当Linuxに詳しくないと・・よくハマるよね(自分もこの前ハマったw)

788 名前:デフォルトの名無しさん (ワッチョイ c359-0MWP) mailto:sage [2017/02/04(土) 02:11:09.03 ID:yz7EyBEj0.net]
>>777
そも、実行しているPHPが意図しているものかの確認をしているかどうかが彼のレスからは読み取れなくないか

789 名前:デフォルトの名無しさん (ワッチョイ 33ce-0MWP) mailto:sage [2017/02/04(土) 16:29:21.48 ID:n3v1YVLA0.net]
下記の記述で、Aパターンの場合はinclude先のsub.php内にて、
$Foo->method()だけでFoo内のメソッドを呼び出せるんですが、
Bパターンではsub.php内で再びFooインスタンスを生成しないと
method()にnot objectのエラーが出て、呼び出すことができません。
sub.phpから直接Foo内にアクセスする場合は
sub.phpをnew Fooと同一のメソッド内でincludeする必要があるんでしょうか?

Aパターン
<?php //main.php
class Example {
public function sample() {
$Foo = new Foo(); //Foo.php
include 'sub.php';
}
}
$example = new Example;
$example->sample();

Bパターン
<?php //main.php
class Example {
public function sample() {
$Foo = new Foo(); //Foo.php
$this->bar();
}
public function bar {
include 'sub.php';
}
}
$example = new Example;
$example->sample();



790 名前:デフォルトの名無しさん (ワッチョイ 7f17-3Ibi) mailto:sage [2017/02/04(土) 23:09:46.50 ID:VQZ3VZ/F0.net]
phpでmysqlに’日付’,と'オナぬした回数'をそれぞれ一日ごとに格納しています
mysql_fetch_arrayを使いechoすると
1日目、2日目、3日目、、、に対して
5回抜、2回抜、3回抜、、、と帰ってくるのですが4日目に入力し忘れた場合
1日目、2日目、3日目、5日目、、
5回抜、2回抜、3回抜、9回抜、、となります
入力忘れの日に自動で「日付」と「0回」を補完するにはどうすれば良いのでしょうか?
テーブル作成時のSQL ↓
CREATE TABLE onanimaster(
onani int(11),
nukibi date default '0000-00-00')

791 名前:デフォルトの名無しさん (ワッチョイ a3f8-0MWP) mailto:sage [2017/02/05(日) 11:42:59.55 ID:pJp2c9va0.net]
・毎日(0回の日にも)ちゃんとinsertをする
・格納前に最後のnukibi_dateを取り出して今日と日付が連続するか比較する
・last_inserted(next)_onani, last_inserted(next)_dateを管理するテーブルを作る

好きなのどうぞ

792 名前:デフォルトの名無しさん (ワッチョイ d3d6-RMO+) mailto:sage [2017/02/05(日) 21:48:00.12 ID:xV17TEr+0.net]
>>780

ばかじゃね? 1日5回も抜いてるから後々息が切れてきて抜かない日が出来るんじゃん。

最大2回でがまんすればいいんだよ。そうすれば断続的に抜けるから。

793 名前:デフォルトの名無しさん (ワッチョイ cf42-yene) mailto:sage [2017/02/05(日) 22:28:23.20 ID:z02c26Xt0.net]
後からで良いから、抜けてる日付のデータを入れておくと楽だよ

794 名前:デフォルトの名無しさん (ワッチョイ 33f8-dbIh) mailto:sage [2017/02/05(日) 23:05:41.71 ID:rvJfY1g90.net]
事前にカレンダーテーブル作ってupdate していくか
後からカレンダーテーブル作って連結してnullはゼロにする

795 名前:デフォルトの名無しさん (ワッチョイ a3f8-0MWP) mailto:sage [2017/02/05(日) 23:15:32.54 ID:pJp2c9va0.net]
781だけど
ちゃんと読んでなかったスマンコ

796 名前:デフォルトの名無しさん (ワッチョイ 7f17-LFJd) mailto:sage [2017/02/06(月) 01:05:03.78 ID:/6p41uPl0.net]
>>781
780ですが
・last_inserted(next)_onani, last_inserted(next)_dateを管理するテーブルを作る

こちらの方法が気になりました
ググっても last_insted_id() 関係の記事やページしか見つけられなくて....
参考になるようなマニュアル、リファレンス、記事などありましたら教えていただけないでしょうか?

797 名前:デフォルトの名無しさん (ワッチョイ 1376-yene) mailto:sage [2017/02/06(月) 01:07:34.79 ID:MbdNwU5U0.net]
cakephp3って最初にアクセスするページのデザイン変わりましたか?
参考サイトだと緑で、
get the ovens ready
と書いてあるところが、

自分のだとヘッダーが赤で
welcome to cakephp 3.3.13 red velvet. build fast grow solid って書いてあるんだけど

composer 経由でのインストールだからバージョンも選べないし、このまま進めていいのか不安です

798 名前:デフォルトの名無しさん (アウアウウー Sa07-J+fW) mailto:sage [2017/02/06(月) 01:19:49.57 ID:Y3CDv6Uea.net]
>>787
かわったよ

799 名前:デフォルトの名無しさん (ワッチョイ 1376-yene) mailto:sage [2017/02/06(月) 01:23:11.63 ID:MbdNwU5U0.net]
>>788
ありがとうです。
このまま進めたいと思います。
たいへん助かりました。



800 名前:デフォルトの名無しさん (ワッチョイ a3f8-0MWP) mailto:sage [2017/02/06(月) 06:46:03.10 ID:BQS7D9EJ0.net]
>>786
それは出てこないだろうね
英語の意味通りで別にそういう関数があるって話じゃないから
早い話が設定値を保存するテーブル(KVS)作れってことだけど
onaniってのは回数じゃなくて日数だと思ってたし
質問読んでなくてほんとすまんかった

最後挿入したnukibiをとるだけなら
SELECT nukibi FROM onanimaster ORDER BY nukibi DESC LIMIT 1
で出来る

挿入する前にこれと昨日の日付比較して日数に空白があれば
その分だけINSERTするようにすればいいんちゃう

801 名前:790 (ワッチョイ a3f8-0MWP) mailto:sage [2017/02/06(月) 07:12:47.14 ID:BQS7D9EJ0.net]
あ、もう1つ追伸しとくと
これからの方策を示しただけで
現在のぶっ壊れたデータベースを修正するって話じゃないんでそこよろしく

802 名前:デフォルトの名無しさん (ワッチョイ 034a-Sup+) mailto:sage [2017/02/06(月) 09:57:07.81 ID:LFg06LIZ0.net]
>>790
抜いてばかりの童貞にinsertは無理だろ

803 名前:デフォルトの名無しさん (アウアウウー Sa07-VnDS) mailto:sage [2017/02/06(月) 19:16:02.72 ID:ozwc9aFfa.net]
>>792
誰がうまいこと言えと

804 名前:デフォルトの名無しさん (ワッチョイ 03d6-yene) mailto:sage [2017/02/06(月) 19:50:18.02 ID:Qfr8LDq90.net]
データベーススレ死んでるのでここで

自分の「お気に入りの本」を無制限で登録できるシステムがあるとき、
そのお気に入りの本の順序もデータベースへ保存したいと考えています

どのようなテーブル構造にすればよいでしょうか?

805 名前:デフォルトの名無しさん (ワッチョイ 034a-Sup+) mailto:sage [2017/02/06(月) 19:53:11.14 ID:LFg06LIZ0.net]
>>794
順序って何さ?

806 名前:デフォルトの名無しさん (ワッチョイ 03d6-yene) mailto:sage [2017/02/06(月) 19:56:54.25 ID:Qfr8LDq90.net]
>>795
1番目、2番目・・・などのユーザーが本を並び替えした順番のことです

これはただの順序であって、ランキング的な意味合いではありません

807 名前:デフォルトの名無しさん (ワッチョイ 034a-Sup+) mailto:sage [2017/02/06(月) 20:00:24.61 ID:LFg06LIZ0.net]
列1: 本のタイトル
列2: 順番
でいいんじゃないか?

808 名前:デフォルトの名無しさん (ワッチョイ 03d6-yene) mailto:sage [2017/02/06(月) 20:17:46.69 ID:Qfr8LDq90.net]
いい感じのパッケージありました

https://github.com/spatie/eloquent-sortable

809 名前:デフォルトの名無しさん (ワッチョイ d3d6-RMO+) mailto:sage [2017/02/06(月) 21:57:45.78 ID:c35vGYE60.net]
>>797
プライマリキーくらいつくれ、能無し



810 名前:デフォルトの名無しさん (ワッチョイ 7f17-pD/q) [2017/02/07(火) 00:04:49.40 ID:Mn/5HQ4m0.net]
>>780 ですが 一応できました
もっと効率のいい書き方、変数の使い方、抜き方、等ありましたら教えてください

pastebin.com/pHhnxtc7

811 名前:デフォルトの名無しさん (ワッチョイ 7f17-pD/q) [2017/02/07(火) 00:10:20.64 ID:Mn/5HQ4m0.net]
>>800
すいませんミスりました
30行目 39行目 $benkyoukaisibi とありますが
$nukikaisibi のまちがいでした

812 名前:757 (ワッチョイ b3c9-C7TH) [2017/02/08(水) 09:18:47.18 ID:FV7NOXvo0.net]
お礼が遅くなりました。なんとなく(?)例外処理がわかりそうな気がします。
あと一つ関連で教えていただきたいのですが
A.php で try{ B.php内の関数} catch($error){例外処理}
としているとき、
B.php の関数で、DB処理をしてトランザクション処理をするときは、
B.phpで処理の必要があると思うのですが、そのあと、改めて例外を投げて
A.phpで補足するのが定番なのでしょうか。

例えばB.php 内の慣習(A.phpから呼び出される)で
try{sql処理} catch($error){ロールバック処理;throw $error}
といった形ということです。

813 名前:802 (ワッチョイ b3c9-C7TH) [2017/02/08(水) 09:19:56.66 ID:FV7NOXvo0.net]
ごめんなさい。関数というのは、B.phpで作られるクラスのメンバ関数のことです。

814 名前:デフォルトの名無しさん (ワッチョイ a3f8-0MWP) mailto:sage [2017/02/08(水) 09:23:32.00 ID:+f0LmjaI0.net]
PDOのエラーモードを例外にしてんなら、
全部PDO関連の例外はPDOExceptionに集約されるでしょ。
そこでトランザクション中ならロールバックすればいいだけ。
php.net/manual/ja/pdo.intransaction.php

815 名前:デフォルトの名無しさん (ワッチョイ a3f8-0MWP) mailto:sage [2017/02/08(水) 09:40:39.44 ID:+f0LmjaI0.net]
try {
 $pdo = new PDO(〜);
 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 〜
 //実行
} catch (PDOException $e) {
 if ($pdo->inTransaction()) {
  $pdo->rollBack();
 }
}

もしくは

try {
 $pdo = new PDO(〜);
 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 〜
 try {
  //実行
 } catch (PDOException $e) {
  $pdo->rollBack();
 }
} catch (PDOException $e) {
} 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


816 名前:デフォルトの名無しさん (JP 0Hff-w8tn) mailto:sage [2017/02/08(水) 10:14:53.81 ID:WP/XTf2IH.net]
>>802
基本的に、データベースアクセスするメソッド内ではtransactionを開始しないこと(呼び出し側で処理する)。
なので、B内ではtry-catchは不要。
A内でcatchするのがrollbackの為だけなら、それも不要。commitしなければ自動ロールバックされるし。

データベースエラーのときだけログをごにょごにょしたいなら、exception handler内でexceptionのクラスを調べて、
PDOExceptionの場合にそうすればいい。

817 名前:757=802 (ワッチョイ 9bc9-Ev9t) [2017/02/09(木) 13:06:47.11 ID:90f1Xg3G0.net]
>>804,805,806
説明が下手でごめんなさい。ロールバックの仕方がわからないのではなくて、
呼び出し先(B.php)でロールバックされたことをA.phpで知って「登録されませんでした」と
いったメッセージをA.phpで送りたいんです。
>>806
A.phpでDB接続のロジックを書きたくないんです。接続せずにトランザクション開始ってできないですよね。
B.phpのクラスでDB関連のロジックをまとめて、A.phpでは結果だけ取得したいです。
結果というのは、正しい結果もあれば例外オブジェクトと思っています。
なので、A.phpでtry{b->function}catch($e){例外処理}としたいのですが、考え方が
おかしいでしょうか?A.phpがコントローラ、B.phpがロジックの場合、どのように処理するのが
定番なのでしょうか

818 名前:デフォルトの名無しさん (JP 0H0e-oA82) mailto:sage [2017/02/09(木) 13:45:35.85 ID:dfCX7ZDmH.net]
>>807
例えば、B.phpの立場と同じUserModel.phpを考えてみましょうか。

まず、class UserModel自身がデータベース接続を確立するのはこのましくありません。

なぜなら、ユーザの登録と同時に何かの登録をしたいとき、
$user = new UserModel();
$foo = new FooModel();
$user->add($user_data);
$foo->add($foo_data);
と書くと思いますが、トランザクションはこのコードの外側で操作する必要があります。

$conn = DBConnection::getConnection();
$conn->begin();
$user = new UserModel($conn);
$foo = new FooModel($conn);
$user->add($user_data);
$foo->add($foo_data);
$conn->commit();

このコードがコントローラに存在するなら、データベース接続はコントローラで行わなければならないということになります。

819 名前:デフォルトの名無しさん (JP 0H0e-oA82) mailto:sage [2017/02/09(木) 13:47:44.35 ID:dfCX7ZDmH.net]
それから、上でも書きましたが、エラー発生後他の処理をしないなら、exception handlerで全てのexceptionを処理するのが簡単です。



820 名前:デフォルトの名無しさん (ワッチョイ 9342-3OfB) mailto:sage [2017/02/09(木) 18:57:33.26 ID:jEjnqqv00.net]
>>807
呼び出し先でエラーがあったらメッセージを出したいってこと?
自分だったら、global変数にエラーメッセージを入れて、それを出力するようにするかなぁ

821 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/09(木) 20:01:16.79 ID:rM/fQ6YVr.net]
おれ、いろんなサイトでB.phpでDB接続して、A.phpでも接続してるけど、特になんの問題もないよ
動けばいい、多少のロジックの無駄は気にすんな

822 名前:デフォルトの名無しさん (ワッチョイ 26c9-cGUq) [2017/02/09(木) 20:24:33.59 ID:3FO030YH0.net]
foreachで、途中からループを始めたいときはどうしたらいいの?
最初のn個飛ばすとか

823 名前:デフォルトの名無しさん (ワッチョイ dfd6-CIv3) mailto:sage [2017/02/09(木) 20:46:25.53 ID:m/rQHIL40.net]
欠陥コードだから構造見直し

824 名前:デフォルトの名無しさん (ワッチョイ 0f59-cGUq) mailto:sage [2017/02/09(木) 21:30:00.55 ID:PVymcmPW0.net]
>>808
B.phpはモデルじゃなくサービスレイヤみたいに読めるけど。

825 名前:デフォルトの名無しさん (ワッチョイ 126b-T9/6) [2017/02/09(木) 22:51:03.38 ID:Uf58p31N0.net]
オブジェクト指向プログラミングのお手本になるようなオープンなソースを教えてほしいです。
PHPのオブジェクト指向プログラミングの基礎を学んだのですが、今ひとつクラス設計がわかりません。
神クラスにならないようにするというのはわかったのですが、実体の無いものをクラス化する時、
例えばデータをファイルに書き込むという操作群があるとして、これをどういうクラスに入れればいいのかということです。
今までは適当に関数にまとめて呼び出していたのですが、これをOOPにするならどういう風に書けばいいのかわかりません。

私が読んだことのあるPHPプログラムは古いバージョン用に書かれたOOPとは無関係の掲示板スクリプトなどです。
出来ればPHPの標準関数・機能だけで完結しているものがあればありがたいです。

826 名前:デフォルトの名無しさん (ワッチョイ dfd6-CIv3) mailto:sage [2017/02/09(木) 23:01:22.62 ID:m/rQHIL40.net]
>>815
フレームワークとか覗いてみるといいかもね
https://github.com/laravel/framework

827 名前:デフォルトの名無しさん (ワッチョイ dfc1-CIv3) mailto:sage [2017/02/10(金) 00:11:57.81 ID:Vc9wXXK10.net]
>>807
だからBで例外投げてAでcatchすればいいんじゃねーの

828 名前:812 (ワッチョイ 26c9-cGUq) mailto:sage [2017/02/10(金) 10:32:44.34 ID:6P3lfBfG0.net]
どうしたらいいかな

829 名前:デフォルトの名無しさん (ワッチョイ 27f8-cGUq) mailto:sage [2017/02/10(金) 10:38:32.76 ID:8U0cA5Uo0.net]
forを使って下さい



830 名前:デフォルトの名無しさん (ワッチョイ 8356-ENO3) mailto:sage [2017/02/10(金) 13:22:55.21 ID:iqUwwggS0.net]
>>812
$ary = array(1, 2, 3, 4, 5, 6);
print_r($ary);

echo "\n";

foreach ($ary as $k => $v) {
 if ($k < 3) { continue; }
 echo "{$k} => {$v}\n";
}

echo "\n";

$ary = array_slice($ary, 3);
foreach ($ary as $k => $v) {
 echo "{$k} => {$v}\n";
}

とか
forやwhile使ってもいいけど

831 名前:デフォルトの名無しさん (ワッチョイ 8356-ENO3) mailto:sage [2017/02/10(金) 13:26:14.20 ID:iqUwwggS0.net]
>>815
Zend Frameworkのソースコードはお手本みたいな規約だしオススメ

832 名前:デフォルトの名無しさん (ワッチョイ dfd6-CIv3) mailto:sage [2017/02/10(金) 14:32:54.04 ID:lMP7OKhp0.net]
array pushの公式に

もし配列にひとつの要素を加えるために array_push() を使用するなら、 関数を呼ぶオーバーヘッドがないので、$array[] = を使用するほうがいいです。

って書いてあるけど、下みたいな書き方でもオーバーヘッド発生するのかな

foreach ($variable as $value) {
array_push($array, $value);
}

833 名前:デフォルトの名無しさん (ワッチョイ dfc1-S0So) mailto:sage [2017/02/10(金) 14:43:11.39 ID:Vc9wXXK10.net]
>>822
なんで発生しないと思うの?

834 名前:デフォルトの名無しさん (ワッチョイ 9342-3OfB) mailto:sage [2017/02/10(金) 15:00:30.89 ID:RYh3fTnw0.net]
>>811
自分は気にするけどなぁww

DB関連のコードを全てB.phpでするようにして、A.php側ではDBを意識しないコードにしたいとかよくある。
あとでDBが変更になることもあるし
PDO使ってても、一部KVSに変更とかあると対応できないし(お願いしたことあるw)
DB一つでトランザクション完了してた時は楽でよかったwww

835 名前:デフォルトの名無しさん (ワッチョイ dfd6-CIv3) mailto:sage [2017/02/10(金) 16:22:22.39 ID:lMP7OKhp0.net]
>>823
関数に閉じ込めてる間はpushが稼働してると思ったから

836 名前:デフォルトの名無しさん (ワッチョイ 9342-3OfB) mailto:sage [2017/02/10(金) 16:29:42.22 ID:RYh3fTnw0.net]
foreachは関数じゃなく、ループですが・・
オーバーヘッドがあるから、ループの中で使うのはおすすめしないと言うことなんだけどね。
ちなみに、array_mergeという関数があって
こちらを使えば・・ループの代わりに関数を使うことで・・という説明になるね

837 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/10(金) 16:35:15.11 ID:8f4rSBP3r.net]
どうせ誰が作ってもクソコード

838 名前:ネんだから動いてればよくて、なんかエラーでてたり客に文句言われたら対応すりゃいい []
[ここ壊れてます]

839 名前:デフォルトの名無しさん (ワッチョイ 0f46-ENO3) mailto:sage [2017/02/10(金) 16:39:09.45 ID:yKHSCA+P0.net]
多少の処理速度の差やオーバーヘッドを気にして見通しの悪いコードにするのは本末転倒
ましてやPHPだし



840 名前:デフォルトの名無しさん (アウアウカー Sa1f-S0So) mailto:sage [2017/02/10(金) 20:36:55.90 ID:B/44UtXJa.net]
>>825
それループで回る分だけ毎回array_push呼ばれるから

841 名前:デフォルトの名無しさん (ワッチョイ beaf-cGUq) [2017/02/11(土) 01:35:29.95 ID:sRxxkJoY0.net]
$ary[] =
これの方が美しいし速い

他の言語じゃ無理だからな

842 名前:デフォルトの名無しさん (ワッチョイ 9f4a-1VpQ) mailto:sage [2017/02/12(日) 17:20:35.17 ID:abtsR4dg0.net]
>>830
どれくらい速いの?

843 名前:デフォルトの名無しさん (ワッチョイ beaf-cGUq) [2017/02/12(日) 18:06:30.99 ID:wFV2vg550.net]
>>831
二通りにしかないんだからarray_pushより速いで十分でしょ?

844 名前:デフォルトの名無しさん (ワッチョイ dfd6-CIv3) mailto:sage [2017/02/12(日) 21:51:06.88 ID:QFyd4EUF0.net]
kakaku.com/item/K0000820062/

価格.comみたいなK0000820062ってどういう風に作るんだろう
UUIDじゃないよね?

845 名前:デフォルトの名無しさん (ワッチョイ 7230-jWyY) mailto:sage [2017/02/12(日) 21:59:19.74 ID:xZhsq1SY0.net]
なんかのIDにK付けて0埋めしてるだけちゃうん

846 名前:デフォルトの名無しさん (ワッチョイ 83d6-Frzy) mailto:sage [2017/02/12(日) 23:54:04.06 ID:GioNsZNN0.net]
>>833
おまえ、頭がやばいよ…

847 名前:デフォルトの名無しさん (ワッチョイ 265b-ENO3) mailto:sage [2017/02/13(月) 10:24:20.63 ID:7hOSszMQ0.net]
>>833
プログラミングの基礎を勉強するべき

848 名前:デフォルトの名無しさん (ワッチョイ 0f46-ENO3) mailto:sage [2017/02/13(月) 12:03:26.71 ID:MX/uxF0s0.net]
>>831
そこで自分でコード書いて試そうという発想にならないならプログラミングには向いてないと思う
人間には得手不得手ってあるからね
手遅れになる前に他の道を探そう

849 名前:デフォルトの名無しさん (ワッチョイ dfd6-CIv3) mailto:sage [2017/02/13(月) 12:53:46.07 ID:dq41sjDl0.net]
protected function getResponseGroup(): array
{
return $this->responseGroup;
}

こんな感じでわざわざ取得メソッド使うのって、型の強制できるぐらいのメリットしかないのかね



850 名前:デフォルトの名無しさん (ワッチョイ 0f46-ENO3) mailto:sage [2017/02/13(月) 13:48:40.27 ID:MX/uxF0s0.net]
>>838
そこら辺は設計思想にもよるし”これが絶対に正しい”というのは無いかな
”getter setter”とかでググってメリット・デメリットを理解した上で”自分の中での正解”を探せばいいのではと

851 名前:デフォルトの名無しさん (アウアウカー Sa1f-S0So) mailto:sage [2017/02/13(月) 16:03:15.51 ID:KMmRwMwBa.net]
>>838
子クラスに親クラスのプロパティを絶対に変更させないという強い意志が感じられる(小並

852 名前:デフォルトの名無しさん (ガラプー KK4b-4eBQ) mailto:sage [2017/02/13(月) 18:39:07.72 ID:qWBqE6jZK.net]
「$this->」
これを何十回も入力させるってバカみたい。

853 名前:デフォルトの名無しさん (ワッチョイ 27f8-cGUq) mailto:sage [2017/02/13(月) 18:52:43.00 ID:pn1QtbZ90.net]
そう思うなら自分好みのパーサー書けばいいんじゃね

854 名前:sage (JP 0Hfe-JgBl) [2017/02/14(火) 12:57:43.87 ID:vlYZpaj3H.net]
すみません教えてください。

ドキュメントルートが/home/virtual/id/public_htmlとして、一つ上のパスを取得したいとします。
(上の例なら/home/virtual/id)

perlで

$ENV{'DOCUMENT_ROOT'} =~ /(.+)\/(.+?)/;
my $path = $1;


これと同じことをPHPでやりたいのですが、見当が付きません…
よろしくお願いします。

855 名前:デフォルトの名無しさん (ワッチョイ 27f8-cGUq) mailto:sage [2017/02/14(火) 13:38:34.23 ID:BZw4l4zq0.net]
dirname($_SERVER['DOCUMENT_ROOT'])

856 名前:デフォルトの名無しさん (ワッチョイ 9342-3OfB) mailto:sage [2017/02/14(火) 13:44:44.59 ID:AvrQL4xh0.net]
dirnameのマニュアル読むといろいろ簡単にできて便利だよ
php.net/manual/ja/function.dirname.php

今確認したら、PHPってファイルシステムの関数めちゃあるね。

857 名前:843 (JP 0Hfe-JgBl) mailto:sage [2017/02/14(火) 13:49:26.20 ID:vlYZpaj3H.net]
>>844
>>845

ありがとうございます!!
こんなの直接できるんだ。。唖然。。

858 名前:デフォルトの名無しさん (アウアウカー Sa1f-S0So) mailto:sage [2017/02/14(火) 16:16:39.35 ID:vX4Pr1L+a.net]
Pythonのos.path, Rubyのpathname, PerlにだってFile::Specがあるんだぜ?
ファイルシステム依存なんだし組み込みじゃなくとも標準ライブラリでラップされてて何も不思議じゃない

859 名前:デフォルトの名無しさん (ワッチョイ 8356-ENO3) mailto:sage [2017/02/14(火) 17:26:18.09 ID:i5SPUrbm0.net]
>>846
つか>>843のperlのソースコードの意味(正規表現)は理解できてるんだろうか?
PHPでも正規表現を使えば似たようなコードで実現できるでしょ
もちろん1つ上のパスを取得する「だけ」なら>>844のがスマートだけど



860 名前:デフォルトの名無しさん (ワッチョイ 1246-3OfB) [2017/02/14(火) 17:46:30.89 ID:PYBh6Cc20.net]
Xcodeの質問ってここで良い?
view controllerでそれぞれのiPhoneの画面サイズがインプットされてない?
出ないんだが?誰か解決策教えてくださいな

861 名前:843 (JP 0Hfe-JgBl) mailto:sage [2017/02/14(火) 18:39:19.55 ID:vlYZpaj3H.net]
>>846

PHPの正規表現の後の$1、$2…が理解できんのです。
誰が作ったのかさえわからん、みんな逃げちゃった(=PHPわかる人が誰もいない+私もPHP書いたこと一度もない)ものを触らざるを得なくなって。

置換もさっぱり。少なくともs/before/after/ig;みたいに簡単じゃないことだけは昨日知った…

862 名前:デフォルトの名無しさん (ワッチョイ 0f59-cGUq) mailto:sage [2017/02/14(火) 19:45:33.94 ID:GvFlLFXU0.net]
>>850
sed分かるなら何の問題もないでしょ

863 名前:デフォルトの名無しさん (ワッチョイ 27f8-cGUq) mailto:sage [2017/02/14(火) 21:45:49.32 ID:BZw4l4zq0.net]
>PHPの正規表現の後の$1、$2…が理解できんのです。
>>843で後方参照して同じことしてるじゃん?
echo preg_replace('/(.+)\/(.+)?/', '$1', '/home/virtual/id/public_html')

[JS] '/home/virtual/id/public_html'.replace(/(.+)\/(.+)?/, '$1')
[Rb] '/home/virtual/id/public_html'.gsub(/(.+)\/(.+)?/, '\1')
[Py] re.sub(r'(.+)/(.+)?', '\\1', '/home/virtual/id/public_html')

Perlが同じように書けるかは知らないけど
テキスト処理能力を進化させすぎたPerlが多分特殊な方

864 名前:デフォルトの名無しさん (アウアウカー Sa1f-S0So) mailto:sage [2017/02/14(火) 22:33:22.74 ID:aTcP7cxLa.net]
置換じゃなくてキャプチャしたいんでしょ
マニュアルのpreg_match見れば分かるけどキャプチャ保存用に引数一個追加する必要がある

865 名前:デフォルトの名無しさん (ワッチョイ 9342-3OfB) mailto:sage [2017/02/14(火) 23:05:03.22 ID:AvrQL4xh0.net]
Perlの書き方は、シェルスクリプトの経験があればなんとかなるけど
何にも知らない人が新しくプログラムを学ぼうとすると
癖が多すぎてwww
まぁプログラムが好きで、プグラムを組むことが目的な人が多い感じするよね。

866 名前:843 (JP 0Hfe-JgBl) mailto:sage [2017/02/15(水) 09:52:31.78 ID:dsR3IgXDH.net]
>>852
その位置に$1か…
ありがとうございます。

>>853
書き方がわからなくて、最後の/以降の文字列を取得してから空文字列で置換しようとしてもうまくいかず、splitで分割して前方だけを$_[0]のような形で取得しようとしても空文字が返り…
一昨日からいろんなところをググりながら調べているですが、マスターできる気がしません…

>>854
ご想像通り?シェルとPerl以外書いたことがありません(ExcelのマクロとVWD2005のC#はほんの少し触った)。


みなさまありがとうございました。がんばってみます。。

867 名前:デフォルトの名無しさん (ワッチョイ 26c9-cGUq) mailto:sage [2017/02/15(水) 10:57:58.02 ID:auzGmUVk0.net]
>>855
シェルやperlを書いたことがあるなら大丈夫でしょ
シェル芸とかいまだにマニュアル読みながらじゃないと書けないわ

868 名前:デフォルトの名無しさん (ワッチョイ 8356-ENO3) mailto:sage [2017/02/15(水) 14:03:33.63 ID:VOjsPlCF0.net]
>>855
DOCUMENT_ROOTが空っぽの事がある可能性も踏まえるなら

if (preg_match('/(.+)\/(.+?)/', getenv('DOCUMENT_ROOT'), $match)) {
$path = $match[1];
}

>>843と同等のPHPコード
print_r($match); の出力結果見てみるといい
細かいことをいえば正規表現は /^(.+)\/.+?$/ のが良いと思うけど

説教臭くて申し訳ないが言語が違えど正規表現の書き方なんて大差ない
基本を理解してないからこういう時に潰しが効かない

869 名前:デフォルトの名無しさん (ワッチョイ 0f46-ENO3) mailto:sage [2017/02/15(水) 14:28:38.96 ID:JwCJBy8n0.net]
perlの変態文法に比べるとPHPのがまだ大分素直だと思う
↓大昔perlメモから拝借したcsvを扱うコードだけど今読むと目眩がするわw
$tmp =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
@values = map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_}
($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);



870 名前:デフォルトの名無しさん (ワッチョイ 9b2c-cGUq) mailto:sage [2017/02/15(水) 14:32:45.87 ID:f1EoCQSH0.net]
それは例としては書き方が悪いだけ

871 名前:デフォルトの名無しさん (ワッチョイ d376-CIv3) mailto:sage [2017/02/15(水) 14:37:57.30 ID:6fjfCJ8x0.net]
cakephp3の質問はここでしてもいいのかな?

872 名前:デフォルトの名無しさん (ワッチョイ 8356-ENO3) mailto:sage [2017/02/15(水) 14:52:38.34 ID:VOjsPlCF0.net]
perlメモ懐かしすぎ。まだサイトが存在してて驚いた
EXCEL形式の改行コードを含むcsvを配列にするソースとか大昔PHPに翻訳して使ったな
>>857
$path = (preg_match('/^(.+)\/.+?$/', getenv('DOCUMENT_ROOT'), $match)) ? $match[1] : '';
と三項演算子で書いた方がperlに慣れた人には分かりやすいかな?とも思ったんだけど

873 名前:デフォルトの名無しさん (ワッチョイ 4fc9-eq+O) mailto:sega [2017/02/17(金) 17:35:16.66 ID:9e/vHQb30.net]
PHPDOCで質問なんだけど、クラスのメソッドのコメントで
戻り値は無しで代わりにメンバ変数を書き換えるとき
どうやってそれを明示すればいいか教えて

874 名前:デフォルトの名無しさん (ワッチョイ cba0-/qTs) mailto:sage [2017/02/19(日) 16:27:17.00 ID:vBQrYNmd0.net]
画像を保存してると消えているファイルが有るのだが、
普通に404ならまだいいのだが下記のようなやつの対処方法がわからない
どうすると良いのだろうか?

1.画像がエラー画像に置き換わっているパターン
i.imgur.com/IEqhtkG.jpg

2.画像ではなくエラーページに移動するパターン
www.dotup.org/uploda/www.dotup.org534402.jpg

875 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK1f-2nU5) mailto:sage [2017/02/19(日) 16:41:33.64 ID:258Rl1AZK.net]
事前にエラー画像とエラーページのURLを記録しておき、比較する

876 名前:デフォルトの名無しさん (ワッチョイ 7b38-yXFx) mailto:sage [2017/02/20(月) 07:05:28.09 ID:uW8j6qNc0.net]
perlの文法を知っていて、c#でデータベースプログラムが書けるレベルだけど、phpは全く知らない
phpのおすすめの教科書ある?

877 名前:デフォルトの名無しさん (ワッチョイ fbf8-eq+O) mailto:sage [2017/02/20(月) 07:29:48.71 ID:siKT4Z4H0.net]
昔はテンプレに市販の書籍は嘘が多いだの、最良の教科書はPHPマニュアルだの書いてたけど今書いてないのか。
とりあえず>>1の入門と簡易チュートリアルの章でも読んでみたら?

878 名前:デフォルトの名無しさん (ワッチョイ 4fc9-eq+O) mailto:sage [2017/02/20(月) 10:27:48.14 ID:gVDOpmLx0.net]
>>863
ステータスで見りゃいいんじゃね?
302が返ってきたら、ビクッとして注意すればいい

879 名前:デフォルトの名無しさん (ワッチョイ cb56-Z7AI) mailto:sage [2017/02/20(月) 11:54:58.17 ID:KgKWtHg50.net]
>>863
HTTPリクエストをどんな手段でやってるのか分からないけど
レスポンスヘッダすら確認できてないならそのリクエスト方法から見直した方がいいと思う
一部省略したけど一目瞭然でしょ

// i.imgur.com/IEqhtkG.jpg
Array
(
[0] => HTTP/1.1 200 OK
[last-modified] => Wed, 14 May 2014 05:44:36 GMT
[content-type] => image/png
[content-length] => 503
[age] => 10135875
[server] => cat factory 1.0
)


// www.dotup.org/uploda/www.dotup.org534402.jpg
Array
(
[0] => HTTP/1.1 200 OK
[content-type] => text/html
[server] => cloudflare-nginx
)



880 名前:デフォルトの名無しさん (ワッチョイ cb56-Z7AI) mailto:sage [2017/02/20(月) 11:58:16.76 ID:KgKWtHg50.net]
>>865
大昔からweb系やってたperl上がりのたくさんの人にPHPを教えてきたけど
最良の手段は自分がperlで組んだソースをPHPで書き直させる事だった

もし過去に自力でperlで組んだサービスが何もないなら
まずは自分が何を作るのか(掲示板でもwikiでもブログでも何でもいい)はっきりさせる
本とか考えるのはその後でOK
目的がはっきりしないのに概念だけ覚えようとするのは時間の無駄

881 名前:デフォルトの名無しさん (ワッチョイ 7b38-fFgi) [2017/02/20(月) 14:33:23.87 ID:uW8j6qNc0.net]
>>869
なるほどなと思った。どうもありがとう。

882 名前:デフォルトの名無しさん (アウアウカー Sa9f-DJtQ) mailto:sage [2017/02/20(月) 19:12:52.64 ID:176Yfxbca.net]
MVCというか、インスタンスについて質問させてください
今の職場だとモデルクラスのメソッドを全部staticにしてインスタンス化なしでコントローラーから
直接呼んでるんですけど、そっちの方が一旦インスタンス化するより効率的なものなんですか?

883 名前:デフォルトの名無しさん (ワッチョイ 4fc9-eq+O) mailto:sage [2017/02/20(月) 19:30:51.57 ID:gVDOpmLx0.net]
>>871
徹底しているなら、いいアイデアかも
割り切っているならテストもしやすそう

884 名前:デフォルトの名無しさん (ワッチョイ cba0-/qTs) mailto:sage [2017/02/21(火) 21:07:02.12 ID:GYKIdTkl0.net]
>>867
>>868

返信遅くなってすみません。
すごくうまくいきました。
ありがとうございます。

885 名前:デフォルトの名無しさん (ワッチョイ 5f30-XdR7) mailto:sage [2017/02/21(火) 22:11:34.97 ID:r+HgLB6m0.net]
>>871
staticおじさん?

886 名前:デフォルトの名無しさん (ワッチョイ fbf8-eq+O) mailto:sage [2017/02/21(火) 23:12:20.06 ID:9alYtg+g0.net]
効率非効率の問題じゃなくて
そんな書き方するぐらいならオブジェクトいらんのじゃ

887 名前:デフォルトの名無しさん (ワッチョイ 9bc1-P9CU) mailto:sage [2017/02/21(火) 23:31:24.27 ID:KlPaDOdy0.net]
内部にstatic変数で状態持ってるならただの巨大なグローバル変数だからなぁ

888 名前:デフォルトの名無しさん (ワッチョイ 4fc9-eq+O) mailto:sage [2017/02/22(水) 14:55:33.04 ID:7bpb3LbA0.net]
>>876
状態はすべてセッション変数に持たせてたとかじゃない?

889 名前:デフォルトの名無しさん (アウアウカー Sa9f-yXFx) mailto:sage [2017/02/22(水) 16:57:51.58 ID:4F/fS8NSa.net]
>>877
いやそんなもん尚更キモいでしょ・・・



890 名前:デフォルトの名無しさん (ワッチョイ db59-eq+O) mailto:sage [2017/02/22(水) 17:09:38.25 ID:BtmqmRAg0.net]
別に巨大なグローバル変数でもいいんじゃないの

891 名前:デフォルトの名無しさん (ブーイモ MM7f-9g8o) mailto:sage [2017/02/22(水) 21:36:50.61 ID:zYmlfQOdM.net]
>>877
絶望しかねえな

892 名前:デフォルトの名無しさん (ワッチョイ 8b42-fFgi) mailto:sage [2017/02/22(水) 21:37:25.75 ID:CIb5Sb890.net]
namespaceの代わりのstatic変数ってかww

893 名前:デフォルトの名無しさん (ワッチョイ 8ec9-8lb6) mailto:sage [2017/02/23(木) 10:05:12.54 ID:lHjqIPrz0.net]
>>880
状態を持たせてそれをページ間でまたがって維持するのって
ストレスたまるから、なんもかんもセッションに全部持たせるのは
一周回っていいアイデアな気がしてんだけど、気の迷いかね

894 名前:デフォルトの名無しさん (ワッチョイ 7f42-JtgB) mailto:sage [2017/02/23(木) 12:29:18.22 ID:abknmwyr0.net]
セッション使うのが普通かと思うけど・・

昔セッションがまだ一般的でなかった頃
自分でクッキー設定してやってるときに
なんでもかんでもクッキーに入れてたという笑い話はあったけどww
PHPがあまりにも簡単にセッション使えるからピンとこない話だろうけど

895 名前:デフォルトの名無しさん (アウアウウー Sacf-gc5m) mailto:sage [2017/02/23(木) 12:32:50.71 ID:sHiWuKpYa.net]
つまり状態変数なんてものが諸悪の根元なわけだな!
そしてモナドの海に沈み孤立していくのだ

896 名前:デフォルトの名無しさん (ワッチョイ 8e5b-HyQo) mailto:sage [2017/02/23(木) 20:22:33.45 ID:chlnLhRq0.net]
大量のnamespaceをまとめたり、bootさせたときに読み込ませて
staticで取得する方法は一般的にあるのに、
なぜstaticをバカ扱いする奴いるのか謎だな

897 名前:デフォルトの名無しさん (ワッチョイ ca30-weqm) mailto:sage [2017/02/23(木) 23:17:49.97 ID:Svl7KGJP0.net]
作るものによるんだろうけどセッションってログイン済みのtrue/falseにしか使わんなー
EC(OSSじゃない)とか某業界向けのニッチなもんしか作ってないけど
でもredis使ってなんでもかんでもセッションぶっ込んでるのは見たことあるな

898 名前:デフォルトの名無しさん (ワッチョイ 2f56-HyQo) mailto:sage [2017/02/24(金) 11:52:02.24 ID:a8MKJYdX0.net]
エラーメッセージを全部セッションにぶち込んでるのは見たことあるな
PHPしかできない人の書くコードを読むと脳味噌がとろけそうになる事があってある意味新鮮

899 名前:デフォルトの名無しさん (ワッチョイ 8ec9-8lb6) mailto:sage [2017/02/24(金) 15:18:00.37 ID:jIC6X1VU0.net]
>>886
それ以外の情報はどうしているの?
毎回DBから取得するようにしてセッションには一切持たない感じ?

入力確認実行直前の画面とかで前画面での入力情報はどこに持ってる?
どうせ顧客の入力データだしクッキーに全持ち?



900 名前:デフォルトの名無しさん (JP 0H56-WLWd) mailto:sage [2017/02/24(金) 15:33:07.09 ID:L3urbmMZH.net]
全然関係ないけど、「入力確認実行直前の画面」が世界からなくなればいいのにと思ってる

901 名前:デフォルトの名無しさん (アウアウウー Sacf-gc5m) mailto:sage [2017/02/24(金) 15:36:25.55 ID:EbrJ09Pka.net]
PHPに未来はありますか?

902 名前:デフォルトの名無しさん (ワッチョイ 06af-8lb6) [2017/02/24(金) 15:46:57.56 ID:FuJuA/X30.net]
php7一択だよ
python ruby perは遅すぎる

903 名前:デフォルトの名無しさん (ワッチョイ 8e5b-HyQo) mailto:sage [2017/02/24(金) 15:53:29.91 ID:Ote1SB7a0.net]
>>888
localstorage使えば?

904 名前:デフォルトの名無しさん (ワッチョイ ca30-weqm) mailto:sage [2017/02/24(金) 20:23:23.92 ID:3gAzX8Bk0.net]
>>888
886だけど常に値を持っていなきゃいけないって設計がおかしくね?
> 入力確認実行直前の画面とかで前画面での入力情報はどこに持ってる?
個人的に好きじゃないけどeccubeとかの実装を見てみては
あとアプリケーションコンフィグやデザインやステートなんかにDB使うの大っ嫌い

905 名前:デフォルトの名無しさん (ワッチョイ ab59-8lb6) mailto:sage [2017/02/24(金) 20:35:33.31 ID:p7wo3OXQ0.net]
>>888
そのセッション情報ってどうやって破棄するの?

906 名前:デフォルトの名無しさん (ワッチョイ 2fa0-6M2V) mailto:sage [2017/02/25(土) 00:28:19.24 ID:jjrnhN5Q0.net]
画面上で+と-のボタンを置いて
初期状態は0で
+ボタンを押すと1増えて
-ボタンを押すと1減る
PHPだとどうやってつくればいいですか?

907 名前:デフォルトの名無しさん (ワッチョイ a342-d4M5) mailto:sage [2017/02/25(土) 00:33:17.09 ID:TbUcHQ5J0.net]
そういうのはPHPではなくJavascriptで作る方が楽だよ

908 名前:デフォルトの名無しさん (ワッチョイ a3f8-8lb6) mailto:sage [2017/02/25(土) 04:38:58.21 ID:3E7NpsF+0.net]
あまりフォーム周りはお勧めできない
ideone.com/F4uuvB

909 名前:デフォルトの名無しさん (ワッチョイ 7b4a-b58f) mailto:sage [2017/02/25(土) 08:03:55.70 ID:fA+zhTaO0.net]
>>895
なぜphpでやりたい?



910 名前:デフォルトの名無しさん (ワッチョイ 2fa0-6M2V) mailto:sage [2017/02/25(土) 09:40:06.34 ID:jjrnhN5Q0.net]
>>898
確認するデータがDBにあって
先にidだけ配列に取得して
ボタンやセレクトでidに該当するデータを呼び出そうと思ってた
他のやり方考えるわ

911 名前:デフォルトの名無しさん (ワッチョイ bbc1-d4M5) mailto:sage [2017/02/25(土) 11:18:11.99 ID:KxydDILI0.net]
>>899
JavaScript案件, セレクトボックスならHTMLだけで行けるやろ

912 名前:デフォルトの名無しさん (ワッチョイ 2fd6-Pl42) mailto:sage [2017/02/25(土) 22:29:44.68 ID:F9CRtHuR0.net]
>>890
あまりにアホな奴が多すぎるので、そういう意味で無い気はしてきている

913 名前:デフォルトの名無しさん (ワッチョイ 2fd6-Pl42) mailto:sage [2017/02/25(土) 22:32:19.20 ID:F9CRtHuR0.net]
staticな関数の方は楽しいぞー

914 名前:デフォルトの名無しさん (ワッチョイ 2fd6-Pl42) mailto:sage [2017/02/25(土) 22:34:26.92 ID:F9CRtHuR0.net]
> 875 : デフォルトの名無しさん (ワッチョイ fbf8-eq+O)2017/02/21(火) 23:12:20.06 ID:9alYtg+g0
> 効率非効率の問題じゃなくて
> そんな書き方するぐらいならオブジェクトいらんのじゃ

適材適所だが、>>871 の内容だといらんな。MVC採用する意味もない。

915 名前:デフォルトの名無しさん (ワッチョイ 8e5b-d4M5) mailto:sage [2017/02/26(日) 12:42:41.85 ID:Tt94x5QQ0.net]
>>903
Mがユーティリティクラスのみで済むなら
それはそのほうが楽だと思う

916 名前:デフォルトの名無しさん (ワッチョイ 2fd6-Pl42) mailto:sage [2017/02/26(日) 23:47:35.33 ID:WXoQ+MY30.net]
>>904
>Mがユーティリティクラスのみで済むなら

それをMと呼んじゃいけねーよ

917 名前:デフォルトの名無しさん (ワッチョイ 8ec9-8lb6) mailto:sage [2017/02/27(月) 15:04:47.79 ID:v76+Cgkq0.net]
呼んでもよくね?

918 名前:デフォルトの名無しさん (ワッチョイ 2fa0-6M2V) mailto:sage [2017/02/27(月) 22:00:25.16 ID:xpX5gY9C0.net]
webpaprika.com/498.html
このサイトの上のやつ使ってlivedoor Blogに記事アップロードできるようになった
その時にブログのURLを取得したいのだけど
どうやればいいのだろうか?

919 名前:デフォルトの名無しさん (ワッチョイ 06af-8lb6) [2017/02/27(月) 23:50:19.91 ID:j7MWq5RR0.net]
普通 $response->getBody() に入ってる



920 名前:デフォルトの名無しさん (ワッチョイ 2fa0-6M2V) mailto:sage [2017/02/28(火) 01:30:57.43 ID:/JbFiKkE0.net]
なんとかできました。
ありがとうございます。

921 名前:デフォルトの名無しさん (ワッチョイ 733c-LqKA) mailto:sage [2017/03/01(水) 02:33:48.18 ID:wZJk3GPb0.net]
おせっかいかもしれないがpearみたいなオワコンはさっさと卒業した方がいいぞ

922 名前:デフォルトの名無しさん (ワッチョイ ab59-8lb6) mailto:sage [2017/03/01(水) 16:51:29.62 ID:zQezymV/0.net]
罵倒するための布石を打ったのかな。
おせっかいといいながらどう見ても普通じゃないレスだよね

923 名前:デフォルトの名無しさん (ワッチョイ 2f56-HyQo) mailto:sage [2017/03/01(水) 17:29:49.47 ID:Hd+zannu0.net]
PEARは乗り換えた方が良いってまっとうな意見だと思うけど
なぜそんなひねくれたものの見方しかできないのだろうか

924 名前:デフォルトの名無しさん (JP 0H56-WLWd) mailto:sage [2017/03/01(水) 18:07:58.16 ID:NYMcPNs0H.net]
MDB2からPDOに移行するとき、半ば死んだ

925 名前:デフォルトの名無しさん (ワッチョイ ab59-8lb6) mailto:sage [2017/03/01(水) 18:41:44.33 ID:zQezymV/0.net]
そうじゃなくて、composer使えって書くのが普通だろうと
なのにそれを書かずにPEARはオワコンとだけ書くのが不自然

926 名前:デフォルトの名無しさん (JP 0H56-WLWd) mailto:sage [2017/03/01(水) 18:47:37.38 ID:NYMcPNs0H.net]
>>914
考えすぎだろ
つか、喧嘩売って荒らしたいのか?

927 名前:デフォルトの名無しさん (ワッチョイ ab59-8lb6) mailto:sage [2017/03/01(水) 18:50:42.28 ID:zQezymV/0.net]
そういう手法で荒らしてるのがいつもいるでしょうに。
pearの代わりに何使えばいいんですか → 調べろカス
ましてpeclなんて言おうもんなら数日にわたって罵倒するような人が

928 名前:デフォルトの名無しさん (ワッチョイ bbc1-d4M5) mailto:sage [2017/03/01(水) 19:49:23.61 ID:dOgTnmNw0.net]
その人は「おせっかいかもしれないが」なんて前置きはしないから・・・・

929 名前:デフォルトの名無しさん (ワッチョイ 6b3c-LqKA) mailto:sage [2017/03/01(水) 22:38:35.85 ID:lnqhaASX0.net]
ワードプレスがインストールできなくて調べてみたらpostfixのパーミッションの問題っぽかったのでとりあえず全部可にしたら、
すんなりインストールできたのですが、これってこのままだとまずいですか?



930 名前:デフォルトの名無しさん (アウアウカー Sa6f-prdN) mailto:sage [2017/03/02(木) 12:56:07.07 ID:XkL8LvgVa.net]
>>918
ここPHPスレですけど, ヤバいかどうか分からないのに権限広くするのはヤバいと思うの

931 名前:デフォルトの名無しさん (ワッチョイ eb46-2BvX) mailto:sage [2017/03/02(木) 14:53:54.41 ID:yMt9oKmu0.net]
ab59-8lb6
誰がどう見てもこのカスの方がスレを荒らしてるという

932 名前:デフォルトの名無しさん (JP 0H7f-m4jB) mailto:sage [2017/03/02(木) 17:26:49.16 ID:bS87lpc8H.net]
>>916
peclにあるならそれでいいじゃん

うちではこれインストールしてる
php71-php-pecl-apcu.x86_64
php71-php-pecl-apcu-bc.x86_64
php71-php-pecl-crypto.x86_64
php71-php-pecl-igbinary.x86_64
php71-php-pecl-imagick.x86_64
php71-php-pecl-json-post.x86_64
php71-php-pecl-memcache.x86_64
php71-php-pecl-msgpack.x86_64
php71-php-pecl-xdebug.x86_64
php71-php-pecl-yaml.x86_64
php71-php-pecl-zip.x86_64

933 名前:デフォルトの名無しさん (ワッチョイ 1bd6-fLnF) mailto:sage [2017/03/02(木) 17:58:00.68 ID:i+xx4AjU0.net]
>>916 : デフォルトの名無しさん (ワッチョイ ab59-8lb6)2017/03/01(水) 18:50:42.28 ID:zQezymV/0
> そういう手法で荒らしてるのがいつもいるでしょうに。

>>920 が言っているとおり、どう見ても自己紹介

934 名前:デフォルトの名無しさん (ワッチョイ 1bd6-fLnF) mailto:sage [2017/03/02(木) 18:00:13.73 ID:i+xx4AjU0.net]
つか、PEARとPECLを同列に語ってる
>>916 : デフォルトの名無しさん (ワッチョイ ab59-8lb6)
こいつ、マジ脳無し

935 名前:デフォルトの名無しさん (ワッチョイ 1b56-2BvX) mailto:sage [2017/03/02(木) 19:01:19.09 ID:HxPD+qqR0.net]
元の質問は>>907だけどこの程度の用途であれば
composerだのpeclだのを持ち出さなくても
cURLで済ませるとか、サクッと1ファイルrequireしてすぐに使えるHTTPリクエスト系のライブラリを使うというのもアリかなと思うな

あとab59-8lb6の言動が軽くキチガイ入っててちょっと怖い 病んでそう

936 名前:デフォルトの名無しさん (スップ Sd3f-3Y4X) mailto:sage [2017/03/02(木) 21:46:26.13 ID:Q9+IGiHqd.net]
配列をDBみたいに検索で使えないですかね?
array_searchだとキーしか返せないし、
多次元配列から

937 名前:デフォルトの名無しさん (ワッチョイ 8b42-NqFr) mailto:sage [2017/03/02(木) 22:36:48.43 ID:X9ktzrEa0.net]
>>925
SQLite 使って見たら

938 名前:デフォルトの名無しさん (ワッチョイ eb59-BJNc) mailto:sage [2017/03/02(木) 22:54:48.41 ID:smxCZ5w00.net]
使うなら Ginq かなぁ
https://www.codeproject.com/Articles/997238/LINQ-for-PHP-comparison-YaLinqo-Ginq-Pinq

939 名前:デフォルトの名無しさん (ワッチョイ 1f7b-Guy/) [2017/03/04(土) 16:51:13.67 ID:p8pBPpDt0.net]
すまん、配列のソートって一般的には何が使われてるん?
連想配列データ140個、これが5個くらいあるんだけどこれくらいならバブルソートでいいのかな



940 名前:デフォルトの名無しさん (ワッチョイ 1f7b-Guy/) [2017/03/04(土) 17:04:59.02 ID:p8pBPpDt0.net]
[45] => 2017-03-19 02:30:00
[46] => 2017-03-19 02:30:00
[47] => 2017-03-19 21:00:00
[48] => 2017-03-19 23:15:00
[49] => 2017-03-19 23:30:00
[50] => 2017-03-19 00:00:00
[51] => 2017-03-19 00:00:00
[52] => 2017-03-19 00:00:00
[53] => 2017-03-19 00:00:00
[54] => 2017-03-19 00:00:00

日付でバブルソートやってみたら午前0時がその日の最後にソートされてしまう(´;ω;`)ブワッ

941 名前:デフォルトの名無しさん (ワッチョイ ab42-e336) [2017/03/04(土) 17:16:35.65 ID:ItpynKpz0.net]
<?

$A=
preg_split("/[\r\n]+/",
<<<'EOD'
2017-03-19 02:30:00
2017-03-19 02:30:00
2017-03-19 21:00:00
2017-03-19 23:15:00
2017-03-19 23:30:00
2017-03-19 00:00:00
2017-03-19 00:00:00
EOD
);

sort($A);
print_r($A);

942 名前:デフォルトの名無しさん (ワッチョイ 8bf8-BJNc) mailto:sage [2017/03/04(土) 17:27:21.36 ID:j/YssWzp0.net]
覚えたてのアルゴリズムでも使いたいの?
バブルソートなんて教材以外じゃ使わないし
各種言語のソート関数もクイックかマージ(から派生したもの含めて)の2択でしょう
おとなしくそっち使えよ

943 名前:デフォルトの名無しさん (アウアウカー Sa6f-prdN) mailto:sage [2017/03/04(土) 17:44:38.18 ID:G8SfkdVGa.net]
バブルソートはほんまもんのゴミ

944 名前:デフォルトの名無しさん (ワッチョイ 7bf9-xEld) mailto:sage [2017/03/04(土) 17:47:01.49 ID:dvfUCgeC0.net]
オバマでもそれくらいは知ってる

945 名前:デフォルトの名無しさん (ワッチョイ 1f7b-Guy/) [2017/03/04(土) 17:58:38.64 ID:p8pBPpDt0.net]
ありがとうございます、クイックソート使ってみます

946 名前:デフォルトの名無しさん (ワッチョイ abc1-NqFr) mailto:sage [2017/03/04(土) 18:32:51.87 ID:WUB5FqMd0.net]
つーか>>930の通りそのままsort使えばクイックソートだよ

どうでもいいけど何らかの安定ソートが標準で実装されてないのは今更なんだけどアレだよね

947 名前:デフォルトの名無しさん (ワッチョイ eff1-NqFr) mailto:sage [2017/03/04(土) 21:00:56.86 ID:yrfHSrc50.net]
'get*Attribute'
(*は任意の文字列です)

この*の部分を取り出したいのですが、どうすればよいでしょう?

948 名前:デフォルトの名無しさん (ワッチョイ 8b42-NqFr) mailto:sage [2017/03/04(土) 21:13:47.71 ID:BXXAQhND0.net]
>>936
<?PHP
$src = array(
"getabcAttribute",
"

949 名前:getgetAttribute",
"getAttributeAttribute",
"getAttribute",
"getXYZAttribute"
);
print_r($src);
$dst = preg_replace('/^get(.*)Attribute$/', '$1', $src);
print_r($dst);
[]
[ここ壊れてます]



950 名前:デフォルトの名無しさん (ワッチョイ eff1-NqFr) mailto:sage [2017/03/04(土) 21:23:00.57 ID:yrfHSrc50.net]
>>937
神ですか?
ありがとうございます

951 名前:デフォルトの名無しさん (ワッチョイ ab85-BSpm) mailto:sage [2017/03/04(土) 21:23:17.15 ID:X2My6T7M0.net]
<?php
var_dump(0 == " ");
var_dump(0 == "");
var_dump(" " == "");

もう、PHPなんてやめませんか

952 名前:デフォルトの名無しさん (ワッチョイ efaf-BJNc) [2017/03/04(土) 21:37:30.81 ID:5qiLAD8F0.net]
php7より速いスクリプト言語もないし === 使えばいいじゃん

953 名前:デフォルトの名無しさん (ワッチョイ ef03-BQ+s) mailto:sage [2017/03/04(土) 21:51:51.36 ID:y+A67JPN0.net]
==なんて使うときあるか?

954 名前:デフォルトの名無しさん (ワッチョイ cb3c-NqFr) mailto:sage [2017/03/04(土) 23:55:02.62 ID:XEtb1T9+0.net]
==使うくらいなら普通にキャストしちゃうな

955 名前:デフォルトの名無しさん (ワッチョイ abc1-NqFr) mailto:sage [2017/03/05(日) 00:03:11.92 ID:AjjTYZYi0.net]
==使っていいのはオブジェクトだけだというのは常識

956 名前:デフォルトの名無しさん (ワッチョイ ab85-BSpm) mailto:sage [2017/03/05(日) 00:54:45.52 ID:YjhEGGhg0.net]
現実は==だらけという

957 名前:デフォルトの名無しさん (ワッチョイ 1bd6-fLnF) mailto:sage [2017/03/05(日) 12:45:33.51 ID:mP3S1jh50.net]
それが、アホが書いた既存コードを活かしつつ改修するとなると、
== 使うのが最良の妥協策って時がけっこうあんのよ。

おんなじメソッドなんだが引数としてどの型がわたされてくるのかわかんねーとか
結構あるからなぁ

958 名前:デフォルトの名無しさん (ワッチョイ 1bd6-fLnF) mailto:sage [2017/03/05(日) 12:46:52.27 ID:mP3S1jh50.net]
>>942
安易にキャストしちゃいけないケースがあることくらいは、わかってるよな?

959 名前:デフォルトの名無しさん (ワッチョイ 4fc9-BJNc) mailto:sage [2017/03/05(日) 15:08:45.21 ID:kA3xMDgu0.net]
>>945
わかる
FALSEと0を等価に使ってるプログラムとかな

タイムマシンがあるなら殴りに行きたくなるわ



960 名前:デフォルトの名無しさん (ワッチョイ 1bd6-fLnF) mailto:sage [2017/03/05(日) 16:35:11.25 ID:mP3S1jh50.net]
引き継いだ時は「しかたねぇ、オレが全部直してやんよ」とか思ってるんだが
読めば読むほど菌糸が蔓延りまくっている事に気づいて影響範囲に絶望し、
しばらく時間がたった後には「もう、いいや…」って挫折してこっちから契約打ち切るんだよ…
そんなの、何度あったことか…

961 名前:デフォルトの名無しさん (アウアウカー Sa6f-prdN) mailto:sage [2017/03/05(日) 17:27:54.51 ID:OgFOpV6da.net]
テストやスペックが書けるところはマシだけどそれすら書けないやつはもうどうにもならん

962 名前:デフォルトの名無しさん (ワッチョイ 1b84-pomU) [2017/03/05(日) 20:50:46.79 ID:SMp0F4mM0.net]
「こっちから契約打ち切るんだよ…」


久しぶりにペチパースレに降臨した瞬間にこんなに香ばしいレスに遭遇するとはwwww
もってるわオレwwww

963 名前:デフォルトの名無しさん (ワッチョイ cb3c-NqFr) mailto:sage [2017/03/05(日) 21:57:03.52 ID:pZffxBVA0.net]
>>946
分かってないやつはそもそも明示的な型変換なんかしないんじゃないかね

964 名前:デフォルトの名無しさん (ワッチョイ 1b56-2BvX) mailto:sage [2017/03/06(月) 19:27:49.93 ID:bl9QmO+H0.net]
作るもののレベルによって使い分けてるな
自分しか使わない業務自動化用のプログラムとかでは
if (!$hoge) { }
なんて普通に使ってしまってるが、くっそ適当に書くからコードを書くのはめちゃくちゃ早い

なぜそれが駄目か理解した上で自己責任で書く分には問題ないと思ってる
しょせんPHPだしw

965 名前:デフォルトの名無しさん (ワッチョイ eb59-CIMi) mailto:sage [2017/03/06(月) 20:04:35.14 ID:1Fs4X0cy0.net]
なぜそれが駄目かではなくて、それで十分だということを理解したうえで書くなら問題ないというスタンスであるべきではないのか

966 名前:デフォルトの名無しさん (スップ Sd3f-3Y4X) mailto:sage [2017/03/08(水) 07:18:41.32 ID:lD7PG6Njd.net]
vcのが速いんでないの

967 名前:デフォルトの名無しさん (ワッチョイ db7b-BTGK) [2017/03/08(水) 15:13:36.00 ID:z9npna5X0.net]
ポリモーフィズムって、無理にinterfaceでメソッドを定義して
実装を行わなくても、
クラスの中のメソッド名を
いざ他のクラスを作った時に同じようなメソッドを同じ名前にするよう気をつければ
ポリモーフィズムとよべるんですか?

968 名前:デフォルトの名無しさん (ワッチョイ 1f3c-dv7B) mailto:sage [2017/03/08(水) 15:23:42.74 ID:Uljnsbub0.net]
ダックタイピングをポリモーフィズムの一種と考えるかどうかは人によって意見が違うが
俺はポリモーフィズムの一種だと思うよ
明示的にインターフェースを定義してるか暗黙のインターフェースを使ってるかの違い

969 名前:デフォルトの名無しさん (ワッチョイ 337b-9RK0) [2017/03/09(木) 14:51:15.69 ID:B4NOdQEm0.net]
回答ありがとうございます。
すると、ポリモーフィズムはプログラミング技術というより
コーディングルールテクニックみたいな感じですかね。



970 名前:デフォルトの名無しさん (ワッチョイ 0bf9-ATAZ) mailto:sage [2017/03/09(木) 14:55:51.52 ID:EWO17/eW0.net]
まあ関数名が短かくなるということですよね

971 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/09(木) 16:14:29.69 ID:x6aOWZGA0.net]
>>957
ポリモーフィズムは概念とか考え方
実現する方法は一つじゃない
プログラミング技術かコーディングルールかでいうとプログラミング技術のほうが近い

972 名前:デフォルトの名無しさん (ワッチョイ af7b-j8zu) [2017/03/09(木) 19:31:52.00 ID:oP+XYW1+0.net]
すまんが質問させて頂くでござる

借り

973 名前:トるレンタル鯖がPHP Version 5.2.17だったんだがもしかしてDatetimeって動作しないん?
ログ見るとPHP Fatal errorが出てるがローカル環境ではPHP Version 5.5.38でエラー無く正常動作しています
[]
[ここ壊れてます]

974 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/09(木) 21:59:57.83 ID:x6aOWZGA0.net]
マニュアル見て
php.net/manual/en/class.datetime.php

975 名前:デフォルトの名無しさん (ワッチョイ b230-JiRs) mailto:sage [2017/03/09(木) 22:35:33.53 ID:Q01U24Fq0.net]
無関係だがもうそんな古いバージョンのPHPとか見たくないよね
って5.xも見たくない
全ての古きphpが朝起きたら7.0.xに(コードも都合よく)変わってないかなあ

976 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/09(木) 23:42:25.43 ID:PWMSgsoI0.net]
>>962
>全ての古きphpが朝起きたら7.0.xに(コードも都合よく)変わってないかなあ

あめぇなぁ。

「全ての古きphp環境が全部7.0.x環境に変わっていて、ゴミクズコードをそのまま動かしていたマヌケ共が全部瀕死にならねぇかなぁ…」

くらい、考えろよ

977 名前:デフォルトの名無しさん (ワッチョイ bfc1-vsbp) [2017/03/10(金) 20:27:51.56 ID:nXK4riNi0.net]
ちょいとお尋ね。

~~~~~~
class Super {
public function override() {
echo __METHOD__.PHP_EOL;
$this->another();
}
public function another() { echo __METHOD__.PHP_EOL; }
}
class Sub extends Super {
public function override() {
echo __METHOD__.PHP_EOL;
parent::override();
}
public function another() { echo __METHOD__.PHP_EOL; }
}
$sub = new Sub();
$sub->override();
~~~~

このコードの実行結果が
Sub::override
Super::override
Sub::another
になるんだけど, 期待されるのは最後はSuper::anotherじゃない?
何か書き方がマズいからこうなってるのか?

978 名前:デフォルトの名無しさん (ワッチョイ bfc1-vsbp) mailto:sage [2017/03/10(金) 20:36:29.28 ID:nXK4riNi0.net]
あ, 忘れてちょ

979 名前:デフォルトの名無しさん (ワッチョイ 337b-9RK0) [2017/03/11(土) 15:09:50.84 ID:ag50xhgS0.net]
レコードによって、実行するプログラムが変わるため 
データベースに php_program(仮名)というカラムを作り
そこのプログラムを直接書きレコードを呼び出した際 eval関数を実行するという、
プログラム作成しようとしています。

基本 php_program カラムは phpmyadmin 以外からはいじれませんが
念のため、インジェクション攻撃を防ぐためにどういった対策が考えられるでしょうか?
指定の関数しか使えないとかできるのでしょうか?



980 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/11(土) 15:26:30.91 ID:sUFiWX+J0.net]
外部に公開するシステムでその設計は無いわ
インジェクションの前に設計を見直すアドバイスを募ったほうがいい

981 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/11(土) 20:34:55.67 ID:n0RAiOjQ0.net]
>>966
発想が斬新過ぎて、もはや異世界の住人的強烈な違和感を覚える

982 名前:デフォルトの名無しさん (ワッチョイ f342-aox5) mailto:sage [2017/03/11(土) 20:56:27.68 ID:M9c6EBxE0.net]
>>966
プログラムを別テーブルにして、プログラムIDを指定するようにするとか
まぁ管理するのが面倒かもしれないけど

使う人が信頼できる前提で、その人にしか公開しない前提ならないとは言えないかな

983 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/11(土) 21:04:54.25 ID:sUFiWX+J0.net]
もしオンラインのコードエディタ的なものを想定してるんだとしたら
Sandbox化する方法を調べたほうがいいかな
そういうの作る人がここで質問するとは思えないけど

984 名前:デフォルトの名無しさん (ワッチョイ 624a-ZfXI) mailto:sage [2017/03/12(日) 16:41:25.84 ID:9ahiNoY00.net]
>>966
俺も967や968と同じ。
どんな要求仕様なのか逆に聞きたいくらいだ。

それと、970は真面目に回答していて偉いと思う。

985 名前:デフォルトの名無しさん (ワッチョイ ef59-ZfXI) mailto:sage [2017/03/12(日) 17:52:33.32 ID:hOorJCR80.net]
> レコードによって、実行するプログラムが変わるため
から
> プログラムを別テーブルにして、プログラムIDを指定するようにするとか
となるのは自然だと思うが
> もしオンラインのコードエディタ的なものを想定してるんだとしたら
は飛躍しすぎじゃないだろうか。

ユーザがコードを入力する流れに変わってしまっている。

986 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/12(日) 21:47:03.45 ID:T4N3k6YJ0.net]
>>972
そこはエディタじゃなく実行できるPHPチュートリアルとかPHP問題集とかでもいいのよ
飛躍はしてると思うけど

あとプログラムを別テーブルにして云々は全く自然じゃないぞ
実行するコード片をDBのレコードに保存してevalするのは変わらないんだから

987 名前:966 (ワッチョイ 337b-9RK0) [2017/03/13(月) 11:29:38.10 ID:v0LCVDYp0.net]
回答してくださった方々ありがとうございます。

仕様状況としては
DBレコードには、会員情報に対応する付加情報がはいっていて
会員(ユーザー)ごとにある部分だけ個別にまったく異なるプログラムを動かさなければならない感じです。
100人いたら100通りプログラムがあり、
会員が増える度にクラスを足していったりSwitch文を増やしていく方法を取ろうかとも思いましたが
直接 個別のプログラムを 会員レコードに内包すると管理しやすいかなとも思ったので質問しました。

セキュリティー的にはよくないのはわかってるのですが、そのレコードをいじるのは
私か内部関係者のみだけがいじれるようにする予定です。

これは、たとえDBレコードにphpを直接書き込む方法をとらずに phpファイルのクラス等を増やしていく方法をとったとしても
FTPやSSH上から内部関係者はいじれるようにする可能性があります。
(ただ、そうしたくないのでレコードにphpを書く方法を取りたいというのもあります)

system exec file系 など 危険な関数は実行出来ないようにしてます。
また、レコード内に必ず ある文字列(十数桁の不規則な英数字)が入ってないと実行できません。

ただ、ぶっ飛んだ方法だったみたいなので もうちょっと安全かつ汎用的なやり方がないか考えてみます。

988 名前:デフォルトの名無しさん (ワッチョイ 3642-nt29) [2017/03/13(月) 11:47:28.29 ID:bicztMj/0.net]
PHPってクラスのデストラクタの動作おかしくないですか?
これって二行目いれないとデストラクタが起動しないんですか?
変数が上書きされれば前回の情報は消えてデストラクタが動くはず。回避できないですか?

$hd = new classXXX("000");
// $hd = null;
$hd = new classXXX("000");

989 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 11:59:39.89 ID:rgen9sgM0.net]
>>974

・こうするじゃろ?

Table::User
-------------------
id | name | prog
1 | taro  | UserProg1
2 | hanako | UserProg2
3 | ziro  | UserProg3
-------------------



990 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sげ [2017/03/13(月) 12:00:17.32 ID:rgen9sgM0.net]
・こうするじゃろ?

app ┬ core
  ├ prog
  │ ├ UserProg1.php
  │ ├ UserProg2.php
  │ ├ UserProg3.php
  │    :
  │
  └ webroot
    ├ folder
    :

991 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:00:44.04 ID:rgen9sgM0.net]
・app/prog/ ディレクトリーをautoloadの対象にするじゃろ?

992 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:01:10.64 ID:rgen9sgM0.net]
・セレクトするじゃろ?

$result = "SELECT * FROM User WHERE WHERE id = '2'";

993 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:02:59.41 ID:rgen9sgM0.net]
・こうじゃ!

$prog = new $result->id();
$prog->execute();

994 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:08:29.70 ID:rgen9sgM0.net]
・間違いじゃ!

$prog = new $result->prog();
$prog->execute();

995 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:14:48.64 ID:rgen9sgM0.net]
>これは、たとえDBレコードにphpを直接書き込む方法をとらずに phpファイルのクラス等を増やしていく方法をとったとしても
> FTPやSSH上から内部関係者はいじれるようにする可能性があります。

恐らく、
おまえさんの書いたDBレコードを関係者がいじれるWEBアプリよりも、鍵方式のSSHの方が遥かに安全じゃ。
FTPは論外じゃ。

996 名前:975 (ワッチョイ 3642-nt29) [2017/03/13(月) 12:24:28.85 ID:bicztMj/0.net]
自己解決しました
静的メンバ変数を用意、維持してやったら出来ました

997 名前:デフォルトの名無しさん (ワッチョイ e356-aizu) mailto:sage [2017/03/13(月) 13:41:54.67 ID:AvyIY0iY0.net]
>>974
とりあえずautoloadって知ってる?


それにしても発想が斬新過ぎる
まあ固定観念に縛られるのはよくないし
こういう刺激?を求めてこのスレを定期的に見てるんだけど

998 名前:デフォルトの名無しさん (ワッチョイ f342-aox5) mailto:sage [2017/03/13(月) 14:08:04.12 ID:f3raQE2X0.net]
>>974
つまり、プログラム自体はプログラマが作って
どのプログラムを実行するかは、データ入力者が決めるようにするということ?

プログラムも信頼できない人が作っておける環境だとまずいけど
そうでなければ、DBにどんなプログラムを実行するかの情報を入れること自体は問題ないと思いますよ。
まぁ直接文字コードを入れさせると、入力間違いで変なプログラムが実行される危険があるので
そこはプログラムリストから選ぶような仕組みにした方が良いと思うよ。
973 みたいにDBにプログラムリストを入れるのを最初から否定するのは発想が貧困すぎww

999 名前:デフォルトの名無しさん (ササクッテロル Sp57-xX7A) mailto:sage [2017/03/13(月) 14:17:41.62 ID:ba0kSSARp.net]
>DBにプログラムリストを入れるのを最初から否定するのは発想が貧困すぎww

evalする事になんの抵抗も感じない土人がなんかほざいています。



1000 名前:デフォルトの名無しさん (ワッチョイ 624a-ZfXI) mailto:sage [2017/03/13(月) 16:11:36.68 ID:kanqNMIn0.net]
DBは値を入れるもので、
プログラムコードはファイルに保存するもの。

おじさんそんなことも知らないの〜?

って近所の小学生が言ってた。

1001 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/13(月) 16:38:55.99 ID:h57/U2+30.net]
>>974
>100人いたら100通りプログラムがあり、

抽象化が不十分な気がする
必要なのはHTMLのテンプレートエンジンだったりしない?

1002 名前:デフォルトの名無しさん (スッップ Sd92-1frF) mailto:sage [2017/03/13(月) 19:01:38.92 ID:7S0lCjx+d.net]
phper的にはそんなもんじゃないの
定年PGだし

1003 名前:デフォルトの名無しさん (アウアウウー Sa93-TeMv) mailto:sage [2017/03/14(火) 01:57:08.43 ID:08imKbv+a.net]
wpがにたようなもんか

1004 名前:デフォルトの名無しさん (ワッチョイ f342-aox5) mailto:sage [2017/03/14(火) 08:57:38.80 ID:N5p5l+OE0.net]
>>986
抵抗はあるけど、Webしか知らない人って感じで発想が貧困すぎでしょww
もっとシステム全体を見て判断できるようになった方がいいと思うよ。

1005 名前:デフォルトの名無しさん (ワッチョイ e6c9-2hGO) mailto:sage [2017/03/14(火) 14:20:16.25 ID:vOSyRZGG0.net]
>>986
そこをいかに安全にするか考えるのが楽しいんじゃん

ideoneみたいにめぼしいシステムコール潰しておくとか
手はあるよきっと

1006 名前:デフォルトの名無しさん (ワッチョイ 3642-nt29) [2017/03/14(火) 14:22:58.56 ID:s4GXkib80.net]
データベースのソースコードをいれること自体は問題なしだろ?
データベースと関係なく、読み込んだしたコードを実行する時点が問題なんだろ?
データベースは関係ない。

1007 名前:デフォルトの名無しさん (ワッチョイ ef59-ZfXI) mailto:sage [2017/03/14(火) 19:41:44.29 ID:OXYXI7ST0.net]
自分がコード片を書くのにそんな制限かけてどうすんのって思う
テーブル分割してロール制御でいいんじゃないのか

1008 名前:デフォルトの名無しさん (ワッチョイ bf6c-1frF) mailto:sage [2017/03/14(火) 22:10:29.49 ID:4mHil5V80.net]
そもそも最前線のフロントエンドに配備する必要なかろう

1009 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/15(水) 00:09:16.65 ID:HiQDR7mt0.net]
>>991 : デフォルトの名無しさん (ワッチョイ f342-aox5)2017/03/14(火) 08:57:38.80 ID:N5p5l+OE0
> 抵抗はあるけど、Webしか知らない人って感じで発想が貧困すぎでしょww

WEB以外を知ってたら、なんでDBにコードぶっこむことになるんだよ土人
何より、DBに入れるメリットが何処にあるんだ、アホなのか?

>>992 : デフォルトの名無しさん (ワッチョイ e6c9-2hGO)2017/03/14(火) 14:20:16.25 ID:vOSyRZGG0
> そこをいかに安全にするか考えるのが楽しいんじゃん

オメー個人が楽しいかどうかを仕事に持ち込むなよ
「いかに安全にするか」ってことは危険だとわかってるのに、
なんであえてそんなアホな手段を模索すんだよ、マゾか?


こいつら、同一人物だろ



1010 名前:デフォルトの名無しさん (ワッチョイ bfb2-csvI) mailto:sage [2017/03/15(水) 00:30:23.86 ID:ko4BTSP20.net]
>>974
とりあえずぱっと見たところで業務案件としては可変コード部分がテスト出来ないのは設計上まずいと思う
可変部分の具体的な(端的な)例を幾つか挙げてもらわにゃ分からんけど, >>988の言う通り抽象化するのが下手なだけな可能性は高い

可変コードにするなら実装案としては,
・コードは顧客毎にgitリポジトリを作成して管理
・アプリケーション側で顧客毎のコードリポジトリを更新するAPI
・ベアリポジトリ(のmaster)へのpush時に上記APIを叩くフック
な感じを提案しておく。
リポジトリ管理はGitLabとか使えばGUIでかなり複雑なことまで出来るしコード編集(masterへのpush)権限も制御出来る。
テストも自動で走らせられる。

1011 名前:デフォルトの名無しさん (ワッチョイ bfb2-csvI) mailto:sage [2017/03/15(水) 00:39:24.05 ID:ko4BTSP20.net]
次スレ立てるよ!

1012 名前:デフォルトの名無しさん (ワッチョイ bfb2-csvI) mailto:sage [2017/03/15(水) 00:43:22.66 ID:ko4BTSP20.net]
ほい

【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1489506082/

1013 名前:デフォルトの名無しさん (ワッチョイ ef59-ZfXI) mailto:sage [2017/03/15(水) 02:46:08.52 ID:6L0FngKc0.net]
>>997
また要件すり替えてワーワーと。git言いたいだけなんちゃうんかと

1014 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<340KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef