我知道class
PHP 5.5上有一个静态字段,但我必须坚持使用PHP 5.4.是否可以从变量中获取完全限定的类名?
例:
namespace My\Awesome\Namespace
class Foo {
}
Run Code Online (Sandbox Code Playgroud)
以及代码中的其他地方:
public function bar() {
$var = new \My\Awesome\Namespace\Foo();
// maybe there's something like this??
$fullClassName = get_qualified_classname($var);
// outputs 'My\Awesome\Namespace\Foo'
echo $fullClassName
}
Run Code Online (Sandbox Code Playgroud) 我需要从约定驱动的位置编写js文件的内容(如〜/ ClientApp/Controllers/Home/Home.js,如果加载位于〜/ Views/Home/Home.cshtml的视图).我该怎么做呢?
示例:如果文件〜/ Views/Home/Home.cshtml如下所示:
<div id="some-partial-view">
<!-- ... -->
</div>
Run Code Online (Sandbox Code Playgroud)
文件〜/ ClientApp/Controllers/Home/Home.Controller.js看起来像
function HomeController() {
//some code
}
Run Code Online (Sandbox Code Playgroud)
然后,Web服务器返回的渲染视图应该看起来像(如果使用fiddler)
<!--ommitted <html> <body> tags -->
<div id="some-partial-view">
<!-- ... -->
</div>
<script type="text/javascript">
function HomeController() {
//some code
}
</script>
Run Code Online (Sandbox Code Playgroud)
一种方法是添加一个HTML Helper,它将执行此操作,例如:
<div id="some-partial-view" ng:Controller="HomeController">
<!-- ... -->
</div>
@Html.IncludeController("HomeController")
Run Code Online (Sandbox Code Playgroud)
但是,我不想在所有部分视图中重复这一点.
有任何想法吗?
假设Web场中有许多负载平衡的Web服务器,在应用程序代码中使用应用程序/ Web服务器时间来获取系统日期/时间是否安全,还是应该将此责任留给数据库服务器?
webfarm中所有服务器上的机器日期/时间设置是否有可能不同步?
如果日期/时间是DBMS的责任,那么如果我们有负载均衡的集群DB,这个策略将如何运作?
这是SQL查询语句:
SELECT p.id, p.[name], SUM(ps.sales_amount) AS GROSS_SALES
FROM products p
LEFT OUTER JOIN product_sales ps ON p.id = ps.product_id
GROUP BY p.id, p.[name]
Run Code Online (Sandbox Code Playgroud)
优于:
SELECT SUM([t2].[value]) AS [SalesAmount], [t2].[id] AS [ProductId], [t2].[name] AS [ProductName]
FROM (
SELECT (
SELECT SUM([t1].[sales_amount])
FROM [dbo].[product_sales] AS [t1]
WHERE [t1].[product_id] = [t0].[id]
) AS [value], [t0].[id], [t0].[name]
FROM [dbo].[products] AS [t0]
) AS [t2]
GROUP BY [t2].[id], [t2].[name]
Run Code Online (Sandbox Code Playgroud)
第二个是LINQ2SQL查询的结果.仍在寻找重写LINQ表达式的方法......
该示例中最优化的SQL查询是什么?
你的意见?谢谢!
您何时鼓励对接口进行编程而不是直接针对具体类?
我遵循的准则是在代码需要跨越逻辑/物理边界时创建抽象,尤其是涉及与基础架构相关的问题时.
另一个检查点是,由于可能存在额外的关注代码(例如缓存,事务感知,调用Web服务而不是进程内执行),或者此类依赖关系是否直接引用基础结构集成点,因此将来可能会更改依赖关系.
如果代码依赖于不需要控制来跨越逻辑/物理边界的东西,我或多或少都不创建抽象来与那些进行交互.
我错过了什么吗?
oop ×2
.net ×1
abstraction ×1
asp.net-mvc ×1
database ×1
interface ×1
linq-to-sql ×1
php ×1
razor ×1
reflection ×1
sql ×1
web-farm ×1