Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 9

Определение интерфейса файла

18.08.2016, 11:17. Показов 679. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, вообщем дела обстоят так.
Есть рабочая среда. в папке core лежат папки с логическим названием на англ. действий или компонентов сисетемы (не важно), в этих папках как правило лежат папки controller, model, action, есть еще к примеру view и templete, form

суть системы мой движок.)) (велосипед). все работает замечательно автозагрузка на namespace. К примеру \core\page\controller\Controller::geturl (""), \core\user\action\Edit() ну и т.п.
но в данном случае приходиться для добавления нового action в Controller прописывать условия. Если к примеру url "http://site.ru/user/edit/5" => то инициализируем \core\user\action\Edit(). "http::/site.ru/user/add" => то инициализируем \core\user\action\Add(). "http::/site.ru/users" => то инициализируем \core\users\action\Index() и это только action. еще есть template в которых классы для отображения нужного типа страницы (2 или 3 колонки или вообще без sidebar)

что в принципе не напряжно но я думаю что можно избежать с помощью просмотра папки \core\user\ на наличие нужных папок, к примеру сейчас я получаю вот это:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
(
    [0] => Array
        (
            [dir] => core/user/action
            [files] => Array
                (
                    [0] => core/user/action/Edit.php
                    [1] => core/user/action/Add.php
                )
 
        )
 
)
или

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array
(
    [0] => Array
        (
            [dir] => core/page/action
            [dirs] => Array
                (
                    [0] => core/page/action/Index.php
                    [1] => core/page/action/Contact.php
                    [2] => core/page/action/Work.php
                )
 
        )
 
)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Array
(
    [0] => Array
        (
            [dir] => core/user/action
            [files] => Array
                (
                    [0] => core/user/action/Add.php
                    [1] => core/user/action/Logout.php
                    [2] => core/user/action/Signin.php
                    [3] => core/user/action/Profile.php
                )
 
        )
 
    [1] => Array
        (
            [dir] => core/user/template
            [files] => Array
                (
                    [0] => core/user/template/Add.php
                    [1] => core/user/template/Signin.php
                    [2] => core/user/template/Profile.php
                )
 
        )
 
)
Все это одноименные классы, можно ли как то определить какой у них интерфейс

url http://site.ru/user/edit/5 interface IActionParams
PHP
1
                    [0] => core/user/action/Edit.php
url http://site.ru/user/add interface IAction
PHP
1
                    [1] => core/user/action/Add.php
url http://site.ru/page/index - http://site.ru/ interface IAction
PHP
1
                    [0] => core/page/action/Index.php
url http://site.ru/page/contact interface IAction
PHP
1
                    [1] => core/page/action/Contact.php
url http://site.ru/page/workinterface IAction
PHP
1
                    [2] => core/page/action/Work.php
Как мне определить что в core/user/action/edit есть ли класс с интерфейсом IActionParams
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.08.2016, 11:17
Ответы с готовыми решениями:

Определение интерфейса в 2-х проектах
Не могу понять как добавить 1 файл в 2 проекта чтобы он не разделился на 2 разных файла собственно есть interface A {...} и два...

Определение сетевого интерфейса.
Этот код определяет сетевой интерфёйс #include "stdafx.h" #include "pcap.h" #include "conio.h" #include <iostream> using...

Определение использования определенного интерфейса
Всем привет, нужна помощь. есть такой код interface IDevice {} interface IGroup {} interface ITag

1
wq
85 / 78 / 32
Регистрация: 26.11.2015
Сообщений: 481
18.08.2016, 20:43
Цитата Сообщение от Hard_Killer Посмотреть сообщение
Как мне определить что в core/user/action/edit есть ли класс с интерфейсом IActionParams
is_a($obj,'IActionParams') вернет true если $obj наследует интерфейс IActionParams. Строить программу на проверках типа объектов в рантайме признак того, что слова class в коде присутствуют лишь для того чтобы было "ООП", не понимая зачем оно нужно вообще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.08.2016, 20:43
Помогаю со студенческими работами здесь

Определение методов интерфейса в точке создания обьекта - поясните синтаксис
public void onclick(View v) { Thread t = new Thread(new Runnable() { Message msg; byte file; ...

Настройка интерфейса командного файла через Batch Enhancer
Подскажите пожалуйста как сделать меню для командного командного файла, используя BE.exe.

Как увидеть методы в классах, которые реализованы из интерфейса и перейти в них из интерфейса?
Как увидеть методы класса, которые реализованы из интерфейса и перейти в них из этого интерфейса, то есть все классы где данный метод...

Для интерфейса достаточно только заголовочного файла или нужен еще файл .cpp
Собственно вопрос в теме. Например, я хочу создать интерфейс который будут другие классы реализовывать.

Определение типа файла
Здравствуйте, товарищи программисты. Подскажите пожалуйста, как с помощью в WinApi функций определять тип файла. Пишу файловый менеджер, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru