Jump to content
  • 0

Чья основа для ядра, является верной?


Павел Билькис
 Share

Question

Здравствуйте камрады. У нас с Фениксом возник небольшой конфликт на почве расовой ненависти и непонимания идей друг друга. Прошу, форумчане, решите, чья основа логичней, расширяемей и написана более грамотно.

Павел Билькис(исправленно)

<?
class Kernel{
public static function load($module)
{
if(include('mods/'.$module.'.php'))
{
return new $module;
}else{
throw new Exception ('Такого модуля не существует');
}
}
}
?>

Fenix

<?php 

class cms{

/**
* Функиция старта
* Создается новый объект системы
* Код создания:
* cms::start();
* Останется если в класе не все методы будут статичными
*/
static function start(){
$cms = new cms;
}

/**
* Модуль состоит из двух елементов:
* Первый элемент - методов в главном классе
* Шаблон представлен ниже
*/
static function operation_name(/*Параметры, если нужны*/){
module_name::function_name;
//Пример post::add_post;
// check::post;
}
/**
* Второй элемент модуля - это файл обработок
* Для post::add_post;
* Файл обработки post.php
* Т.к. есть автозагрузчик
* Файл нужного модуля подгружается
*/

/**
* Автозагрузка нужных модулей
* файл модуля:
* (имя класса).php
*/
function __autoload($classname) {
require_once("{$classname}.php");
}


}

?>

Edited by Павел Билькис
Link to comment
Share on other sites

Recommended Posts

  • 0

Всё, что вы тут привели никак не отражает "грамотность". Чтобы понять насколько что-то из этого сделано плохо или хорошо надо взять и написать реальные проекты и потом сравнить.

1. Скорость написания - чем быстрее удастся сделать работу, используя те или иные заготовки, тем, несомненно, лучше.

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

3. Удобство написания - личное дело каждого. Некоторым вот, например, на перле удобнее и ничего в этом плохого или хорошего нет. Но читабельность, конечно вносит нехилый плюс.

Так что, уважаемые, предлагаю прекратить спорить и заняться делом - тогда и будет понятно что плохо, а что хорошо и в итоге может получиться еще один хороший фреймворк или прекрасная цмс.

Link to comment
Share on other sites

  • 0
Так что, уважаемые, предлагаю прекратить спорить и заняться делом - тогда и будет понятно что плохо, а что хорошо и в итоге может получиться еще один хороший фреймворк или прекрасная цмс.

Что я и хочу сделать

Link to comment
Share on other sites

  • 0

Итак, т3:

*Использовать свою основу

*Использовать минимум кода

*Сама задача: обычный календарь, с возможностью записать и просмотреть дело(а) на каждый день

у обоих все плохо с идеей, довольны?:D *сейчас бросятся писать что пришел злой дядя Ваня и всех обругал*

Ну мы типо учимся - думаю в процессе будут обе основы отредактированы. В данный момент я свою как следует редактирую

Link to comment
Share on other sites

  • 0
Итак, т3:

*Использовать свою основу

*Использовать минимум кода

*Сама задача: обычный календарь, с возможностью записать и просмотреть дело(а) на каждый день

Ну мы типо учимся - думаю в процессе будут обе основы отредактированы. В данный момент я свою как следует редактирую

Предлагаю сделать простой блоговый движок с минимумом функций и полнофункциональной админкой. И с возможностью легкого расширения.

Link to comment
Share on other sites

  • 0
Предлагаю сделать простой блоговый движок с минимумом функций и полнофункциональной админкой. И с возможностью легкого расширения.

Нет, мы так до нового года будем капатся. Давай лучше обычный календарь с делами

Link to comment
Share on other sites

  • 0
у обоих все плохо с идеей, довольны? *сейчас бросятся писать что пришел злой дядя Ваня и всех обругал*

Видил, как Джек Харрингтон, показывал как надо загружать модули в ядро приложения.

2 ошибки в коде(фатал еррор).

И причем такая тупость...

Может тоже видил?

Edited by AMD
Link to comment
Share on other sites

  • 0
Видил, как Джек Харрингтон, показывал как надо загружать модули в ядро приложения.

2 ошибки в коде(фатал еррор).

И причем такая тупость...

Может тоже видил?

Переведи

Link to comment
Share on other sites

  • 0

Возьмем логику из JAVA.

Называем файл и класс одним именем.

class loadclasses{
function __construct($classname, $params = array(), $rootPath = false)
{
//Сканим, ищем файл нужный нам.
preg_match("/[.]php$/", $file); //типо этого.
если нет, можно посканить другую папку или заинклудить похожий по названию файл.
$class = new $file($params);

return $class;
}
}

$test = new loadClasses('test', array('yes' => 1));
$test->thisIsMethod();

Очень близорукий способ, который придумал я.

Но зачем такие затраты на поиск файла?

Вообще, если хотите граммотно писать код, думайте о нагрузке.

Иногда Время не критичнее нагрузки - но это к Вам не относится.

Лучше просто инклудить что тебе надо, будет работать быстрее всего.

Переведи

у тебя есть эта книга, php трюки, глава модульные интерфейсы.

Edited by AMD
Link to comment
Share on other sites

  • 0

Я побился головой об стену и вот что у меня вышло:

<?
class Kernel{
public static function load($module)
{
if(include('mods/'.$module.'.php'))
{
return new $module;
}else{
throw new Exception ('Такого модуля не существует');
}
}
}
?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy