Как правильно подключить файлы

Crazy

Developer
Автор оригинала: col
если я правильно тебя понял, то при таком подходе.
При подключении различных модулей может возникнуть накладка с именани обявляемых в скриптах функциях.
Никто не мешает сделать имя функции соответствующим имени файла. Если у тебя операционная система позволяет создавать несколько файлов с одним именем -- тогда будет трудно. :)
 

col

Guest
2 гоша
ну если не вдоватся в детали, то да.
Ну вот и скажи терь как быть с повторным обявлением функций.
 

Линк

Guest
да хотя бы так (не красиво - может кто лучше предложит)

if (!(isset($mod))) {requre "mod.php";}

//mod.php
$mod=true;
function mod()
{
..
}
 

col

Guest
2 Линк
И чё дальше.

if (!(isset($mod))) {requre "mod.php";}
if (!(isset($mod1))) {requre "mod1.php";}

//mod.php
$mod=true;
function mod()
{
..
}

//mod1.php
$mod1=true;
function mod()
{
..
}
Приплыли

2Crazy 2Линк
Скрипты могу писаться, не одним человеком и не должы зависеть друг от друга, следовательно я и не могу обеспечить уникальность имен функций.
А заставлять каждого кто захочет написать модуль писать его одной функцией и называть её именем файла, вариант конечно рабочий, но я его считаю немного кривым и поэтому отошел от него, вернее отложил.
 

Линк

Guest
тогда делай объектом, и пиши внтури объекта)

//main.php
require obj.inc

//obj.inc
class boofoomoo324()
{
blabvlavla
}
$boofoomoo324->main();
//забыл про include_once:)
 

Crazy

Developer
Автор оригинала: col
Скрипты могу писаться, не одним человеком и не должы зависеть друг от друга, следовательно я и не могу обеспечить уникальность имен функций.
Col, ты хочешь, чтобы мы за тебя придумали механизм уникальности? Лови: функция должна называться foo_bar_buzz_fluxx, где [email protected] есть e-mail ее автора, а fluxx -- имя файла, в котором он ее создает.

Если ты ищешь решений -- они находятся легко.
 

гоша

Guest
хорошо.

пусть модуль имеет такой вид

class ModuleName
{
function main($args){....}
}

и хранится в ModuleName.php

тогда getContent будет такая

function getContent($module,$args){
include_once $module.".php";
$obj=new $module;
return $obj->main($args);
}
 

col

Guest
2Линк
ты прости за резкость,
но ты хотя бы чучуть подумай прежде чем писать.
Если просто переложить проблему на классы, то ситуация ничем не отличается от ситуации с функциями.
у классов тоже могут быть одинаковые имена.

2crazy
Я понял, но это ситуацию в корне не меняет.
Нет гибкости и свободы для разработчика, хотя это может просто громко сказанно.

2гоша
ты также как и crazy предлагаешь придумать алгоритм придумывания НАЗВАНИЙ класса, функции и т.д.. У тя он зависит, от имени файла а нет от мыла и файла.

2гоша & Линк

а можно так классы обявлять ?

class ModuleName_$id
{
function main($args){....}
}

У меня будет таблица где будут регистрироваться все модули, типа при "инсталяции в систему" сайта.
Может это как то вам поможет в наставлении меня на путь истинный.
 

Линк

Guest
col, за резкость прощаю) ты меня неверно понял.прочти еще раз)


объявлять так классы нельзя.

Чем тебе не нравится придумывание названий классов по имени файла?
например в винде тоже есть ActiveX (КОМ объекты) - твой случай. Так вот у них есть имена - internetexplorer например.
Кроме того у них еще есть UID)

-~{}~ 26.02.04 18:29:

Все
оставляю тебя на более опытных
мне с тобой слишком тяжело)
 

гоша

Guest
col

Сущности (будь то классы, модули или что-то иное) всё равно надо как-то называть. Тебе предложили несколько вариантов, как это сделать более или менее разумно. (Не вдаваясь в постановку задачи саму по себе).

Если ни один из предложенных вариантов тебя не устраивает, тебе предоставляется полная свобода разработать собственный язык, свободный от ограничений php.
 

col

Guest
2Линк
чего я не понял в предедущей месаге хм...
объясни
откуда ты взял название boofoomoo324 для класса.
По поводу ActiveX ну с именами может там тоже как кая неразбериха но что такое UID, может мне это как то поможет.
Я так понимаю это какой то специфический индефикатор ком-объекта или что. Нельзя ли по подробнее.

-~{}~ 26.02.04 18:49:

2Гоша
:)))

2ALL
Народ я все таки подумываю остановиться на способе с
file (http://modul.php?id=2);
Если это на сто процентов криво, неправильно и ваще убить меня за такое мало. То скажите мне, объясните почему, незя и т.д. а тож делать начну а потом если какой косарез серьёзный вылезет обижусь на вас и в дворники подамся. :))

Братцы не оставте без помощи нуждающегося. :)))
 

IntenT

SkyDiver
col
а косяк не за горами - стоит собрать пхп с --disable-url-fopen-wrapper
И все твои модули тихо курят в сторонке
 

Crazy

Developer
Автор оригинала: col
Я понял, но это ситуацию в корне не меняет.
Нет гибкости и свободы для разработчика, хотя это может просто громко сказанно.
У тебя и сейчас нет гибкости и свободы для разработчика. Ты уже навязываешь свой способ передачи параметров и их состав.
 
Сверху