我有一个类如下:
class DreamsImagesStore
{
public $table = 'dreams_images';
public function insertNewDreamImage($dream_id, $pid)
{
try {
$values = array($dream_id, $pid);
$sth = $this->dbh->prepare("INSERT INTO {$this->table}
(dream_id, pid)
VALUES (?, ?)");
if($sth->execute($values)) {
return true;
}
} catch(PDOException $e) {
$this->errorLogger($e);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
我将要实施一项名为InterestsImagesStore新的类,其中这些类之间的唯一区别将是价值$table,$dream_id将$interest_id和dream_id在SQL会interest_id.
我知道有更好的方法可以做到这一点,我将在未来实现类似的类,这些类有很小的差异.
为了避免重复和提高可维护性,重构代码的最佳面向对象方法是什么?
这可能是一个非常高级的问题,需要大量的解释,但我需要大量的解释.
基本上我正在开发一个需要大量日志记录和跟踪的PHP应用程序.跟踪点击次数,互动,表现等等.在阳光下的任何事情.Facebook的Scribe和雅虎的Chukwa都是很好的实现.我对log4php知之甚少.
我想要的是这种日志记录如何工作的高级概述,特别是与PHP应用程序结合使用.您可以在处理日志的位置停止; 我已经知道我想使用Hadoop/Hive进行处理和存储.
我还想对应用程序本身内发生的事情进行一些相当低级的研究.例如,如何获取点击的行为并将其发送到记录器?我也很感激任何可以帮助我开始的阅读.
我正在尝试做一个相当复杂的查询 MySQL ; 对我来说很复杂,至少.
这是我正在尝试做的一个例子:
SELECT * FROM friends
LEFT JOIN users ON users.uid = friends.fid1
LEFT JOIN users ON users.uid = friends.fid2
WHERE (friends.fid1 = 1) AND (friends.fid2 > 1)
UNION SELECT fid2 FROM friends
WHERE (friends.fid2 = 1) AND (friends.fid1 < 1)
ORDER BY RAND()
LIMIT 6;
Run Code Online (Sandbox Code Playgroud)
我回来了:ERROR 1066 (42000): Not unique table/alias: 'users'.
我哪里出错了,我该怎么做才能真正执行这个查询?
我想弄清楚我应该如何重新索引Sphinx.我正在使用v 0.9.9,所以我没有能力对索引进行实时更新.
我想我在某个地方读到这可以使用cron作业完成,并且索引不需要完全重建(所以不要停止守护进程).也就是说,我从来没有写过任何cron工作,所以不知道从哪里开始.
有什么想法吗?
我使用的是UICollectionView同一个UICollectionViewFlowLayout,试图在仅视图中的第一个项目实现左填充/保证金.我已经查看了每个实例的所有实例属性和方法,但似乎无法找到有帮助的实例.
为了清楚起见,我仍然希望视图可以在应用程序的整个宽度上滚动,因此只需移动周围的框架就无济于事了.
假设你有一个这样的表模式:friends(friendship_id, uid1, uid2, are_friends).
当一个朋友与另一个人取消联系时,最好从数据库中删除该行(并重置自动递增)?或者你应该简单地将are_friends状态更改为"N"?
我很想知道你的想法和原因.
编辑:我主要关注的是显示有关朋友状态的一些信息,还会显示谁是谁的朋友.那样在添加的时候我可以通知受害者的请求,但还没有让他们成为朋友.
我原本有are_friends一个大型ENUM有更多的选择.但是因为ENUM我有像removed和等的选项blocked,我不确定这是否真的是有用的数据.关于拥有更多数据与更少数据的优点的任何进一步想法?
另外,自我发布以来我已经提出的另一个问题是如何避免重复友谊.你应该制作(uid1, uid2)一把钥匙吗?
我正在使用ready.js将JS文件聚合到一个all.js文件中(没有Google的Closure Compiler),然后使用uglify-js缩小和混淆代码.我想在预提交钩子中完成所有这些操作.
但是,我认为我做错了什么.
我的.git/hooks/pre-commit文件看起来像这样:
#!/bin/sh
readyjs ~/Sites/backbone/js/javascripts/ ~/Sites/backbone/js/ --nojslint -o "underscore.js, backbone.js" --nocompiler
uglifyjs -nm -o ~/Sites/backbone/js/all.min.js ~/Sites/backbone/js/all.js
# Commit
exit
Run Code Online (Sandbox Code Playgroud)
我不应该在这里使用简单的Bash吗?还有别的我做错了吗?这一步似乎完全被忽略了.
是否可以一次将2个框阴影应用于HTML元素?我正在尝试应用内部(插入)和外部框阴影.
这使得效果在元素内部模糊,然后只是正常的外部阴影.
例如:
box-shadow: inset 5px 5px #000000;
box-shadow: -1px 5px #FF00FF;
Run Code Online (Sandbox Code Playgroud) 我无法概念化如何使用Jade视图部分在Express应用程序中呈现具有活动状态的菜单.
我有这样的事情:
ul.menu
li
a(href='/some/route').active
li
a(href='/another/route')
Run Code Online (Sandbox Code Playgroud)
我想要的是将.active类应用于当前路由,因此我的CSS可以呈现活动的UI状态.
当我用PHP编写时,这将通过一些复杂的if/else语句链完成,但我假设有一种更优雅的方法.我错过了什么?
mysql ×3
php ×3
blacklist ×1
chukwa ×1
cocoa-touch ×1
cron ×1
css ×1
css3 ×1
database ×1
devise ×1
express ×1
git ×1
githooks ×1
html ×1
ios ×1
ios6 ×1
iphone ×1
log4php ×1
logging ×1
menu ×1
node.js ×1
objective-c ×1
oop ×1
pug ×1
refactoring ×1
registration ×1
sphinx ×1
sql ×1
uglifyjs ×1
username ×1
view ×1