我正在尝试全神贯注于 PHP OOP,在阅读了所有我能理解的内容之后,我完全理解它是如何工作的,但是在我投入太多时间来学习改变我的内联、程序习惯之前,我想确保它甚至可以完成我需要什么,或者我是否偏离了轨道。
我有一个 PHP/MySQL 网站,最初是作为一个副项目开始的,但发展迅速,我正在努力确保我的技能能够跟上。该网站有用户和公司。用户端是相当静态的,我能够用我的新手 PHP 技能处理显示内容的微小变化。在公司方面,我试图让它非常适合他们喜欢的公司,但我很快意识到我遇到了问题,因为现在每个公司我有 50 页代码被修改,然后根据公司的需要转储到文件夹中在他们的网站上。因此,每次有公司加入时,我都会将以前公司的文件复制到我的网站根目录中的一个新文件夹中,并为他们定制一堆东西。我已经在大部分页面中添加了一些功能,以将页面数量减少到大约 20 个,但我的问题是 OOP 能否让我一路回到我只维护一个站点的地方,这就是 OOP 的目的吗?我有像 javascript(如下所示)这样的东西,它会根据客户在他们的网格系统中的需求而改变。有人可以帮助我了解我应该在这里学习的基础知识吗?我应该学习使每个页面成为一个大对象并在该对象中包含下面的 javascript 还是仅适用于 PHP 的 OOP 并且每次客户访问时我都会被至少几页代码困在一个新文件夹中或我只是限制可以定制的内容吗?我不害怕学习新东西,只是想确保我走在正确的轨道上,而且我所处的困境正在迅速加深,所以时间很紧迫。感谢您对这个概念的任何帮助。我觉得我缺少一些基本的理解......
var mygrid;
function doInitGrid(){
mygrid = new dhtmlXGridObject('gridbox');
var combo=mygrid.getCombo(4);
combo.put(2, 'Approve / Deny');
combo.put(1, 'Approve');
combo.put(0, 'Deny');
mygrid.setImagePath("../codebase/imgs/");
mygrid.setHeader("Submit Date, Manufacturer, Product Category, Progress, Approval Status",null,["text-align:center;","text-align:center;","text-align:center","text-align:center","text-align:center"]);
<!--mygrid.attachHeader("#text_filter,#text_filter,#text_filter");-->
mygrid.setInitWidthsP("10,16,44,18,12");
mygrid.setColAlign("center,left,left,center,center");
mygrid.enableAutoWidth(false);
mygrid.setColTypes("ro,ro,ro,button,coro");
mygrid.setColSorting("str,str,str,str,str,str");
mygrid.enableRowsHover(true,'grid_hover');
mygrid.setSkin("modern");
mygrid.init();
mygrid.setStyle("font-size:11px;","font-size:11px;","font-size:11px","font-size:11px","font-size:11px");
mygrid.loadXML("connector.php?hospid=<?php echo $hospid; ?>");
mygrid.setColumnIds("date,man_name,group,approval_progress, approval_status");
var dp = new dataProcessor ("connector.php?hospid=<?php echo $hospid; ?>");
dp.init(mygrid);
dhxWins = new dhtmlXWindows();
dhxWins.setImagePath("../codebase/imgs/");
mygrid.attachEvent("onRowSelect", function(id,ind){
if (ind == 0 || ind == 1 || ind == 2 || ind == 3){
dhxWins = new dhtmlXWindows();
var w1 = dhxWins.createWindow("w1", 60, 60,925, 575);
dhxWins.setSkin("dhx_web");
dhxWins.setImagePath("../codebase/imgs/");
w1.centerOnScreen();
w1.setText("");
w1.setModal(false);
theVar11 = (id);
w1.attachURL("pop_details.php?var1=" +theVar11);
return true;
};
});
最佳答案
我试着阅读了您的问题(啊啊啊,一大堆文字!没有空行,没有要点,没有摘要!)据我了解,您最大的问题似乎不是 PHP 和 OOP,而是项目管理。
您正在尝试为 50 家公司管理一个项目,他们都需要一些不同的东西,并且您在代码重用/复制粘贴代码以及更新所有代码方面遇到了问题。
解决方案可以两部分:对于第一部分,大多数人会建议您使用源代码版本控制系统,例如 git、svn 或 cvs。这将允许您对代码进行版本控制、创建分支并合并它们。通过这种方式更新旧代码要容易得多。
代码重用的第二个解决方案确实是OOP。您需要决定哪些功能是通用的并且应该放在一个单独的(可重用的)模块中,哪些功能是公司特有的并且不会被重用。一旦它被重用,将代码分离到一个模块中。
考虑一下您不是为自己或公司编写代码,而是为必须使用您的代码的其他开发人员团队编写代码可能会有所帮助。分离代码并记录 API。
关于PHP OOP 与 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084658/