トップページphp
1002コメント237KB

【PHP】2chat開発スレ【2chを越える】 [無断転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2016/04/23(土) 13:45:28.79ID:???
【2chatとは】
掲示板とチャットを組み合わせたオープンソースのPHPスクリプトです。
名前の由来は2ch+chat

【特徴】
*基本的な面
ユーザー登録は必要だが、匿名
ユーザーは日付の経過や書き込み、荒らしなどでレベルが上下し、このレベルは通報の影響度などに関わる
管理人が不在でも通報が集まった書き込みは自動削除
チャット形式の為、書き込み上限はなく、テンプレはいつでも誰でも編集可能
板はなく、各スレッドはカテゴリを付けられる為、スレッドを探しやすい
単発スレには向かない

*専ブラ
jsを使い専ブラなしで快適に閲覧出来るUIを提供
WEBで見れるため、PC⇔スマホで開いているスレなどを完全同期できる

*API
誰でも使えるAPIを提供(jsonp対応)
2ch互換のAPIも提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
049012016/09/15(木) 18:30:00.02ID:???
>>489
広告は色々心配があって…
アドセンスとか規約厳しいみたいだし、書き込み内容が酷いとBANされないかなと
アマゾンとかは大丈夫なのだろうか
0491nobodyさん2016/09/15(木) 18:34:20.53ID:???
そっか。俺はそこらへん素人だから実情わかってなかったわ。
049212016/09/15(木) 18:37:35.26ID:???
俺もよく分からないから調べてみる
Googleはアウトらしいけど、他なら大丈夫な所あるかも
049312016/09/15(木) 18:41:30.17ID:???
2chの広告はマイクロアドって言う奴っぽい
ggってみたら審査も緩いらしいし、ここならいけるかも(Googleで落ちた人が使っているらしい)
049412016/09/15(木) 18:47:25.42ID:???
画像投稿機能はサーバー側には付けません
imgurAPIを利用します
0495nobodyさん2016/09/15(木) 20:20:39.67ID:???
そこらへんは悩みどころだよな。
レスの本文に何を許すのか。本文に(Markdownとかによる)HTML入力を許すのか。
それとも、単にPlainなテキストのみ許可するのか・・・
HTML入力許すとブラウザで表示する場合はいいけど、クライアントアプリでの
表示が大変になる・・
049612016/09/15(木) 20:24:21.14ID:???
MarkDown使う(独自拡張したいけど大変そう)
クライアントアプリはあまり考えていない。もし作るならElectronとか使ってする
0497nobodyさん2016/09/15(木) 20:36:32.49ID:???
2chmateとかandroidやiOSを無視する気ですかね。
まぁ、そこらへんはすべてのHTMLタグに対応しなくて(できるわけもないし)、
表とかはきつそうだけど、基本的なタグだけ対応すれば、まぁ、でもユーザーが
やりすぎるとブラウザでの表示とクライアントアプリでの表示がかい離しすぎちゃうけど。
049812016/09/15(木) 20:43:11.45ID:???
>>497
WEBブラウザからだと問題ある?
WEBアプリはスマホ対応するけど
あと今調べたらElectronみたいなCordovaって言うのがあるらしい
049912016/09/15(木) 20:58:47.06ID:???
最近reCAPTCHAって奴多いなと思っていたらGoogleだったのか
凄い有能だと思っていたけど流石Google
0500nobodyさん2016/09/15(木) 21:02:47.89ID:???
例えば、2chなら2chmate並みの操作性に近づけてくれるなら別にWebブラウザでもいいよ。
もちろんWebアプリで可能だと思うし。まぁ、デメリットはブラウザ(JavaScript)で動く分、多少重くなるだろうが。

最低、スレをお気に入りに登録して新着チェックを簡単にできるようにそれぐらいは必要でしょう。

このスレだって、途中で>>1がいなくなって戻ってきたけど、このスレをお気に入りに登録して、
新着チェックできるからこそ、>>1が戻ってきた事に気づけたわけだし。

まぁ、でもスマホとかじゃ2chmateなど専用ブラウザから見てる人圧倒的なんじゃないかな。
2chのスマホ向けのWebページがしょぼすぎて低機能なのもあるけど。
050112016/09/15(木) 21:13:55.41ID:???
>>500
お気に入り機能とか使ったことなかった…
タブ170件以上開いて新着チェックしてた

まあそれは置いておいて、
2chmateは使ったことない(IOSだから)よく分からないが、多分専ブラの機能なら大変だろうけどWEBで実装出来ると思う
専ブラ作るのが大変なのはネイティブでも変わらないし

2chは本当WEBページゴミだよな…多分ajaxとかSPAとかが流行ってなかった事に出来たからだと思うけど
050212016/09/15(木) 23:14:57.05ID:???
明日か明後日にはサーバーサイドAPIの実装が終わるので(テストはまだだけど)、クライアントの方はその後に考えます
とりあえずPushしました
050312016/09/15(木) 23:16:36.60ID:???
クライアントですがJS使えないブラウザは当然ですが、IEも捨てるかもしれません
050412016/09/15(木) 23:18:34.33ID:???
いつのまにか500行ってた
テストコード1回も書いたことないから何すればいいか分からん。。。
050512016/09/15(木) 23:31:09.21ID:???
あとPHP版でコールバック地獄で酷い事になったのでpromise採用します
050612016/09/15(木) 23:54:14.47ID:???
クライアントはvue.jsではなくangular2を使います
0507nobodyさん2016/09/16(金) 16:54:03.11ID:???
>>302だけど、俺もPHP挫折しそうww
コード補完がまともに動かなったり、->の代わりに.をくせでスペルミスしたりで動かなったり効率悪すぎ。
いちいち、メソッド名忘れると、Webで検索してるわ。
開発環境が悪いのかなぁ・・
Windows上のVisual Studio Codeで作って、仮想マシン上のLinuxにデプロイ・実行してるんだけど。

ということで、.NET Core + ASP.NET Coreに移行中。
とりあえず、開発環境と実行環境分けるとあんまいい感じじゃなさそうなので、
Linux上のVisual Studio Codeでやるわ・・
050812016/09/16(金) 16:58:37.39ID:???
VS CodeはJSとかHTMLだと軽くて強力だけどPHPは微妙
VSにPHP Tool(クソ高い)入れるかNetBeansおすすめ(そもそもPHPがゴミだけど)

C#ならVS CodeよりVSの無料版の方が絶対良い
0509nobodyさん2016/09/16(金) 17:28:26.93ID:???
>VSにPHP Tool(クソ高い)入れるかNetBeansおすすめ(そもそもPHPがゴミだけど)
勉強目的でいきなりお金払うのわね。NetBeansとかいうのいいんだ。
俺的にはコード補完とかもうちょいまともに効くならPHPという言語でも許容できるけど。

>C#ならVS CodeよりVSの無料版の方が絶対良い
うん。今、それに向けて作業してる。元々、UWPアプリとか作っててVisual Studio 2015使ってるからね。
これ以上、メインマシンをよごしたくなくて、維持でも実行環境(Webサーバー+DBサーバー)は仮想マシン上に構築しようとしてたけど、
Windows上で.NET Core + ASP.NET Coreの開発環境入れてもIISとかインストールされないっぽい(
Kestrelとかいう軽量サーバーがデフォルト?)から、VSにすることにした。
で、データベースだけはLinux上に。
0510nobodyさん2016/09/16(金) 17:32:57.59ID:???
あれ,IIS Expressとかにインストールされちったw
051112016/09/16(金) 18:28:33.80ID:???
TODO:
User子クラスに認証関係のチェック不足が大量にあったので修正する
051212016/09/16(金) 20:36:37.97ID:???
API一通り完成したのでコミット&Pushしましたー
0513nobodyさん2016/09/16(金) 20:57:06.34ID:???
全部POSTメソッドなんだ。
つか、ソース見にくすぎだな。
0514nobodyさん2016/09/16(金) 21:06:49.13ID:???
つか、これ、コンパイルは通ってるの??
abstract class HttpApiBase(val tokenFlag:TokenFlag,val strParams:List[String],val intParams:List[String]) extends HttpServlet
Scalaの事よくわからんけど、tokenFlagとかコンストラクタの引数?
継承元のHttpServletってサーブレットコンテナ?がHttpServletのインスタンスを生成して、適切なdoPostとかdoGetとか呼んでくれるんじゃないの?
HttpApiBaseにコンストラクタ引数を宣言してて、だれがこれをセットしてくれるのか??
0515nobodyさん2016/09/16(金) 21:10:30.17ID:???
あ、ごめん。Scalaはなんか違うのか。派生クラスみたら、定数値っぽいのがセットされてるな。
051612016/09/16(金) 21:38:02.32ID:???
>>514
class Hoge(val i:Int)

public class Hoge{
  public final int i;
  public Hoge(int i){
    this.i=i;
  }
}
と同じ(実際は内部でgetterが生成されていたりするけど)
かなり短く書ける
051712016/09/16(金) 21:44:30.44ID:???
あとListはscalaのAPIで不変なリスト
javaのHoge<T>はScalaではHoge[T]
Hoge[]はArray[Hoge]
051812016/09/16(金) 23:09:55.00ID:???
あっ大事な事忘れていた
web.xmlがない
051912016/09/16(金) 23:11:44.98ID:???
URLとかは
hogeFooよりhoge-fooの方がいいのだろうか
0520nobodyさん2016/09/16(金) 23:42:59.51ID:???
RESTfull API的には
hoge/foo/afef
で、HTTPメソッドGETで取得、POSTで挿入、PUTで更新、PATCHで部分更新、DELETEでリソース削除。
052112016/09/16(金) 23:48:46.55ID:???
>>520
POSTとGETは分かりますが、残りは対応面倒と聞きました
全部POSTに統一が一番シンプルでいいかと思ったので、POSTに統一しています
052212016/09/16(金) 23:49:26.23ID:???
まだ、バグ修正などありますが、APIを頭の中で整理するために仕様書を書きます
0523nobodyさん2016/09/16(金) 23:56:47.02ID:???
対応って別に全部に対応する必要はないよ。
例えば、User自体は削除できないんだから、Userに対してDeleteメソッドは定義する必要はないし。
Scalaとか使う道具にはこだわるが、作りだす物にはこだわりがないのかね?
いきなり全部はできんけど。

つか、せめて、取得系はGETでいくべきだ。全部POSTとか、クソAPI呼ばわりされること間違いなし。

RESTful APIに別に無理してしなくてもいいが、
例えばQiitaのAPIはRESTful APIっぽいし。
https://qiita.com/api/v2/docs
http://wp.tech-style.info/archives/683
052412016/09/17(土) 00:03:42.90ID:???
>>523
なるほど
何か難しそうだけどそういう風なのが普通なのか
あとエラーコードの返し方も考えた方がよさそう
全部jsonで返しているし
052512016/09/17(土) 00:04:24.59ID:???
これHTTPの基礎勉強しないと駄目だ
0526nobodyさん2016/09/17(土) 00:05:38.71ID:???
RESTにしなくても、RPC的なAPIでもいいと。
https://dev.twitter.com/rest/public
Twitterはそんな感じだけど。パラメータの渡し方は。
052712016/09/17(土) 00:06:00.49ID:???
PATCHとか初めて聞いた
0528nobodyさん2016/09/17(土) 00:06:47.04ID:???
いや、エラーは全部JSONでいいよ。他のResponseとかも
JSONで返すんだし統一性がないと俺ならブチ切れる。
0529nobodyさん2016/09/17(土) 00:09:19.60ID:???
エラーはHTTPのステータスコードでエラーを示して、
更に詳しい情報やメッセージなどをレスポンスのJSONボディで返すのが
普通かな。大手サービスはだいだいこんな感じ。
053012016/09/17(土) 00:10:05.25ID:???
>>528
エラーの詳細はJSONだろうけど、HTTPステータスがエラーでも200 OK返しているからどうなのかなと思って
例えば、「本文が長すぎます」みたいなのは200 OKでいいの?
0531nobodyさん2016/09/17(土) 00:12:25.56ID:???
>>526のTwitterはGET,POSTでパラメータはどっちかというとクエリパラメータで
渡して、RPC的なんだと思う。
053212016/09/17(土) 00:12:43.05ID:???
>>529
大まかなエラー内容はHTTPステータスでいいのか

REST APIで調べたら「セッションなどの状態管理を行わない」って書いてあったけどトークンってこれに含まれる?
何か凄く難しい
053312016/09/17(土) 00:14:25.50ID:???
>>531
twitter参考にしているからこっちがいいのだろうか
何か凄く難しい…
TwitterAPI生では触った事ないから内部でどうなっているか考えた事なかった
0534nobodyさん2016/09/17(土) 00:16:42.85ID:???
>>530
それはまずい、それはクライアラント側のエラーだから
ステータスコードは400のBad Requestで、
JSONの方に、本文が長すぎますみたいな感じで。
まぁ、はじめてなんからほどほどでいいけど。

https://tools.ietf.org/html/rfc7231
で、どんなステータスコードあるかサクっと見たほうがいい。
4xx系がクライアント側のエラー
5xx系がサーバー側。例えば、クライアント側のリクエストには問題ないが、
サーバー側で問題発生で処理できないとか。
053512016/09/17(土) 00:18:20.61ID:???
>>534
何か基礎が分かってないみたいだからRESTとRPCを見て、エラーコードも確認してみる
実装は明日にする
0536nobodyさん2016/09/17(土) 00:23:06.98ID:???
>REST APIで調べたら「セッションなどの状態管理を行わない」って書いてあったけどトークンってこれに含まれる?
これって認証がらみのトークンだっけ??
通常は、HTTPのリクエストヘッダにAuthorizationヘッダってあるから
https://tools.ietf.org/html/rfc7235#section-4.2
これで渡してもらうのがふつう。
0537nobodyさん2016/09/17(土) 00:25:30.64ID:???
まぁ、ほんとは認証がらみではOAuth2っていうプロトコルあって、
これをどのサービスを使ってるんだけど。まぁ、さすがに今は覚えることありすぎて
やりすぎかな。

QiitaのAPIもTwitterもFacebookもDropboxもOAuth2だし。みんなこれ使ってる。
053812016/09/17(土) 00:28:52.08ID:???
Authorizationヘッダとかあったのか
OAuthはTwitterで聞いた事はあるけどよく知らない
HTTPってかなり複雑だったんだな…
053912016/09/17(土) 00:31:04.56ID:???
やる事が思っていたより多かった
0540nobodyさん2016/09/17(土) 00:34:41.55ID:???
まぁ、俺は何度もHTTPのRFCの仕様を何度もよんだし。
いろいろ大手のAPIを叩いたし、OAuth2のクライアント側も自分で実装したりしたから、
ここらへんは叩き込まれてるけど。あくまでクライアント側だけだから。
>>507で書いたように今はサーバ側を君と一緒に勉強しようとかなと
ここに居座ってるw
054112016/09/17(土) 00:36:51.23ID:???
一度実装したものを作り直すのは大変だから一回表とかにまとめてみる
0542nobodyさん2016/09/17(土) 00:42:23.14ID:43HWDKIQ
>>541
そこだね。見てて思ったんだけど、作り方が水平方向的?なんだよね。
例えば、モデルクラス作るなら、一気に全部モデルクラスを作るみたいな。
これだと、途中で設計まずったときに全部作り直しになるじゃん。
俺なら例えば最初にUserだけのモデル作って、その次は垂直方向にUser用のAPIを作るね。
そうすりゃ、早い段階で問題点に気づけるし、全体像を早い段階で気づける。
054312016/09/17(土) 10:10:06.72ID:???
アジャイル開発って奴か
クラス間の依存とか考えたら結構難しくて…
0544nobodyさん2016/09/17(土) 10:34:47.47ID:???
認証後回しにしてメインのスレッドとレスポンスからがいいと思う
054512016/09/17(土) 10:41:23.23ID:???
サブパスワードで安全にしようと考えていたけど、流石に大量のパスワード覚えるのは面倒か
ここ全く考えてなかった
054612016/09/17(土) 10:55:39.20ID:???
・SubPass廃止
・Tokenの仕様変更
・Storageは1トークン1つ
・GET、POSTメソッドを分ける
・HTTPステータスも返す
0547nobodyさん2016/09/17(土) 14:47:49.39ID:???
そもそも、サブパスでセキュリティで気にするなら
HTTPSを使わんと。
Let's encrypt!!
054812016/09/17(土) 16:02:12.48ID:???
HTTPSってサーバーの設定じゃない?
サーブレット側でも対応することあるの?
0549nobodyさん2016/09/17(土) 17:05:10.60ID:???
ないと思う。
というよりそういう事いいたかったんじゃなくて、HTTPSはサーバー証明書が
必要になるわけだから、サーバー証明書簡単に取れるのか知らないので
そこらへん気をとめておいてねって言いたかった。
055012016/09/17(土) 17:13:27.05ID:???
証明書無料のあるか探しておく
055112016/09/17(土) 17:16:17.06ID:???
メモ
http://qiita.com/uasi/items/cfb60588daa18c2ec6f5
055212016/09/17(土) 17:29:25.24ID:???
authorization認証よく分からん
とりあえずはリクエストパラメーターでいいか…
0553nobodyさん2016/09/17(土) 17:38:38.30ID:???
いや、別にOAuth2とか使わないんでしょ?
で、独自認証なんでしょ??そんだったら、
Authorizationヘッダのフォーマットを自由に決めていいんだって
(HTTPのAuthorizaitionヘッダの形式に違反しないかぎり)。
例えば、Authorization : nch {token}
とか
0554nobodyさん2016/09/17(土) 17:42:20.58ID:???
>>551見ると、Authorization ヘッダについて調べたのセクションに
Authorization: auth-scheme (token68 / auth-params)
ってなってんじゃん。この形式にしたがってフォーマット決めておけばOK。
例えばauth-schemeは「nch」ね(IANAにもちろん登録されてないスキームだけど)。
後はtoken68の形式か。
055512016/09/17(土) 17:45:18.34ID:???
なるほど。スキームは自由でいいのか
Authorization : nch (token_id) (token_key)みたいな感じで
0556nobodyさん2016/09/17(土) 17:46:14.52ID:???
それか>>551
Chatwork API は X-ChatWorkToken: トークン ヘッダ
ってなってるように、独自のリクエストヘッダを定義するとか。
X-NChTokenみたいな。
0557nobodyさん2016/09/17(土) 17:48:34.18ID:???
>>555
そう。Authorization: BearerとかはOAuth2を使ってるときの仕様であって、
OAuth2使ってないんだから、独自でもOKだと。HTTPの仕様に従ってるかぎり。
0558nobodyさん2016/09/17(土) 17:51:12.40ID:???
auth-scheme [ 1*SP ( token68 / #auth-param ) ]
厳密にはこうだから、パラメータ2つ渡したいなら
Authorization : nch id=(token_id), key=(token_key)
こんな感じかな。確か,区切りでいいはず。
055912016/09/17(土) 17:56:31.37ID:???
それってどこに空白入れてもいいんだよね?
=の前後とか
解析難しそう
0560nobodyさん2016/09/17(土) 17:56:43.62ID:???
で、認証が必要なAPIに認証せずにリクエストしたら、
ステータスコード401のUnauthorizedでレスポンス返す。
で、レスポンスのヘッダにWWW-Authenticate : nch
って指定して、nchスキームでの認証が必要ですよって示すのが普通。
0561nobodyさん2016/09/17(土) 18:00:31.58ID:???
RFC 7235には
auth-param = token BWS "=" BWS ( token / quoted-string )
BWS=Bad White Spaceで仕様上は許可してるけど、推奨しないホワイトスペースだね。
0562nobodyさん2016/09/17(土) 18:04:29.65ID:???
解析自体は難しくない。quoted-stringのを使わなければ。
まず、ヘッダ全体をスペースでSplitする(.NETならString.Split)で、
先頭がauth-scheme。で、今度は残り全体をまず「,」でSplitする。
でそれを今度は「=」でSplitして、終わり。
適宜前後のホワイトスペースをTrimする。
0563nobodyさん2016/09/17(土) 18:11:07.36ID:nfgV7g+h
string authHeader;
var items = authHeader.Split(' ', 1, StringSplitOptions.RemoveEmptyEntries);
items[0]がauth-schemeで空白は既にない。
items[1]が残り。
items[2].Split(',').Select(i => i.Trim());
でこれをそれぞれSplit('=').Select(i => i.Trim())
で終わり。

HTTPの仕様上、quoted-stringってのがゴミ。これを含めると解析はクソめんどくさくなる。
0564nobodyさん2016/09/17(土) 18:14:24.42ID:???
>items[2].Split(',').Select(i => i.Trim());

items[1].Split(',').Select(i => i.Trim());
こうだった。
だから、君の仕様でquoted-stringを使わないように認証トークン生成して
仕様で決めてくれれば解析は楽。
056512016/09/17(土) 18:15:14.69ID:???
思ったんだけどid=(id),key=(key)にするメリットって何?
省略可能なパラメーターがある訳ではないし(id),(key)の方が楽だと思う
仕様でそうなっているから?
0566nobodyさん2016/09/17(土) 18:16:16.49ID:???
まぁ、もちろん一番楽なのは、
Nch-ID : token_id
Nch-KEY : token_key
と独自ヘッダで分けてくれれば一番楽だね。
056712016/09/17(土) 18:17:28.80ID:???
名前被りがなければ自由にヘッダって作っていいんだよね
それならそうしようかな
0568nobodyさん2016/09/17(土) 18:17:57.62ID:???
>>563
そうだね。仕様でそうなってるからだね。
俺だったら仕様違反はしないけど、もし、(id),(key)にしたいなら、
独自ヘッダにするね。
0569nobodyさん2016/09/17(土) 18:19:56.47ID:???
>>567
うん。独自ヘッダは最初にX-ZZZZみたいなX-を先頭につける慣習??みたいの
あるっぽいことだけ指摘しておく。
057012016/09/17(土) 18:20:41.97ID:???
>>569
なら"X-Token:(id),(token)"にする
057112016/09/17(土) 18:26:51.23ID:???
プッシュしました
0572nobodyさん2016/09/17(土) 18:28:16.24ID:???
了解。idとtokenに使う文字は注意してね。なんで使えるわけじゃないから。
仕様で確認してね。
057312016/09/17(土) 19:19:03.25ID:???
>>572
idは数字のみ、tokenはbase64から=を除いたものだから多分大丈夫
0574nobodyさん2016/09/17(土) 20:53:57.80ID:???
なんだかんだでちゃんと進んでて偉いわ
057512016/09/17(土) 21:08:17.79ID:???
エラー関係はCSVで外出しした方が管理楽かも
057612016/09/17(土) 21:22:09.76ID:???
twitterの200台ステータスは200 OKしか使ってないみたい
これは分ける必要なさそう
0577nobodyさん2016/09/17(土) 21:22:16.27ID:???
いやいや、偉くないだろ。ユーザーにとっては、完成させれるか完成させれないかの
どっちかしない。開発者にとっては、完成させれなくても勉強になるけど。
だから、進んでても最終的に完成するかしないかが問題。
0578nobodyさん2016/09/17(土) 21:30:42.88ID:???
というか、このサーブレットはローカル環境で動いてるの???
057912016/09/17(土) 21:36:14.21ID:???
>>578
まだ実際に動かしてはいない
web.xmlとか作ってないからテスト出来ないし
058012016/09/17(土) 21:36:54.23ID:???
HTTPステータスコードってこんな感じ?

200 成功
401 認証が必要/認証エラー
403 リクエストの送りすぎ(書き込み間隔が短い)
404 見つからない(スレなど)
409 既に存在する(スクリーンネームなど)
421 リクエストがおかしい(パラメータが足りない、数値に変換出来ない、文字列が正規表現に一致しない、長すぎる)
500 鯖内部でエラー
058112016/09/17(土) 21:39:51.01ID:???
例えば、トピックIDを指定して取得するAPIで見つからなかったらエラーを返しているけど、
トピック検索APIで見つからなかったら成功+空の配列を返している
つまり単取得系と多取得系の違い
これってどっちもエラー返すべきだろうか…
0582nobodyさん2016/09/17(土) 21:49:02.01ID:???
ワロタ。やっぱ動かしてないかww
昨日も書いたけど、すごい水平展開に開発していくな。

https://tools.ietf.org/html/rfc7231
には421のってないな。
まぁ、そんな感じでいいんじゃないかな。
細かいところはAPIによってもマチマチだし。
0583nobodyさん2016/09/17(土) 21:50:44.95ID:???
>>581
それでいいと思う。検索の方はエラーじゃなくていいと思う。
058412016/09/17(土) 21:51:08.71ID:???
ウィキペディア見てた

421 Misdirected Request (RFC 7540)
誤ったリクエスト。
058512016/09/17(土) 21:52:45.98ID:???
とりあえずエラーコードは連番でしてみる
058612016/09/17(土) 21:54:03.23ID:???
500エラーはエラーコード-1だけでいいか
詳細教えたら危険だろうし
0587nobodyさん2016/09/17(土) 22:00:42.38ID:???
というか、マジで動かす方を優先した方がいい。
でないと、また、大幅な手戻り発生しそう。
クラスの依存関係で無理って言ったけど、そんなの当たり前。
だから、そこらへんは適当に動くようにつくればいいだけ。後で修正すればいいんだから。
>>544の人もアドバイスしてくれてるのに。
058812016/09/17(土) 22:02:21.52ID:???
とりあえず動かした方がいいのか
なら適当にAPI作って動かしてみる
0589nobodyさん2016/09/17(土) 22:10:38.89ID:???
俺もPHPの勉強し始めてるっていって、この前ASP.NET Coreをやりだしてるっていったけど、
君みたいなやり方してないぞww
初めての作業で全体像見えないまま、クラス設計なんてしようがないし。
だから、とりあえず、1,2つだけモデルクラスを作って、それで次はすぐにWeb APIの方作って、
実際にブラウザからアクセスさせてる。
それで、作り方に問題なさそうって確認してから、おおざっぱに全体の設計を
把握してから残りモデルクラスの作業に取り掛かってる。
■ このスレッドは過去ログ倉庫に格納されています