Форум программистов, компьютерный форум, киберфорум
JavaScript: ExtJS
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
154 / 31 / 11
Регистрация: 29.10.2012
Сообщений: 389
1

Корректное подключение php (reader) к модели. Или к store

21.02.2016, 19:13. Просмотров 1631. Ответов 3


Здравствуйте!

У меня сразу два вопроса:
  1. Как реализовать подключение php файла считывающего данных из базы в формате MVC? Пишу на фреймворке версии 6.0.0. Удалось считать данные из файла json (следовал обучалке). На этой же самой обучалке нашёл главу, где есть пример, как подключать php файлы и через них получать данные. Хоть и значения в php файле были написаны от руки в примере, не думаю, что у меня возникнет проблема при реализации кода получения данных из базы. А если возникнет, то это уже другой вопрос. В первом примере, параметр proxy находился в классе Ext.data.Store (не обращайте внимания, что в примере находятся данные книг, а у меня в проекте какие-то там билеты). А во-втором — в классе Ext.data.Model. Поэтому запутался. На официальном сайте примеров не нашёл (возможно плохо искал). Загуглить тоже не удалось.
  2. Куда этот php файл кидать? (скрин с деревом структуры прилагается) С одной стороны он будет возвращать данные в формате json и будет, собственно заменять текущий статический json файл, который хранится в директории 'data'. Однако, подключение к серверу, считывание данных - это уже слишком много для того, чтобы файл, хранящий такой код находится в этой директории. В идеале, логика подключения и передача данных должна быть реализована отдельно, а вот какой-нибудь wrapper, принимающий параметр таблицы, данные которой хочу получить уже хранить в... Тоже не знаю, где. Наверное в 'data'.

Любая помощь приветствуется: реализация небольшого примера или ссылка на литературу.

Заранее спасибо.
0
Миниатюры
Корректное подключение php (reader) к модели. Или к store   Корректное подключение php (reader) к модели. Или к store  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2016, 19:13
Ответы с готовыми решениями:

при входе в Microsoft Store или Уч.Запись- ошибка: 0х800704 -"для этого потребуется подключение к интернету"
при входе в Microsoft Store или Уч.Запись-выходит табличка- ошибка: 0х800704сf -"для этого...

Подключение USB клавиатуры к МК / MIFARE READER
Приветствую всех! Встала задача считать данные с бесконтактных карт класса MYFARE. Для упрощения...

Корректное подключение одной формы к другой
Нужно создать некое подобие блокнота, которое поддерживает проверку чисел на простоту. По идее,...

Корректное подключение к БД, сделанной в Interbase, из Builder C++ 6.0
Здравствуйте! Я пишу приложение, которое подключается к БД, сделанной в Interbase. Как сделать...

3
Ренегат
Эксперт HTML/CSS
1735 / 1080 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
23.02.2016, 20:32 2
честно говоря не работал с этим фреймворком
но есть предположение по второму вопросу
может закинете в data, как и json

Добавлено через 25 минут
ну и соответственно так же в api проведите пути к папке data
по идее будет как-то так
Javascript
1
2
3
4
5
6
7
8
9
        proxy: {
                   type: 'ajax',
                   api: {
                            read: 'app/data/read.php',
                            create: 'app/data/create.php',
                            update: 'app/data/update.php',
                            destroy: 'app/data/delete.php'
                       }
            }
1
154 / 31 / 11
Регистрация: 29.10.2012
Сообщений: 389
24.02.2016, 23:31  [ТС] 3
Спасибо за помощь!

Сам сделал вот таким образом:
"TicketTracker/app/data/read.php":
PHP
1
2
3
4
require_once '../../Connection.php';
 
$result = Connection::fetch('tickets');
echo json_encode($result);
"TicketTracker/Connection.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Connection
{
    /**
     * @param array $columns
     * @param string $tableName
     * @return array
     * @throws Exception
     */
    public static function fetch($tableName, $columns = array())
    {
        if (!self::passesValidation($tableName)) {
            throw new Exception();
        }
 
        foreach ($columns as $column) {
            if (!self::passesValidation($column)) {
                throw new Exception();
            }
        }
 
        $columnsString = empty($columns) ? '*' : implode(',', $columns);
 
        $serverName = "localhost";
        $userName = "root";
        $password = "root";
        $dbName = "ticket_tracker";
 
        // Create connection
        $conn = new mysqli($serverName, $userName, $password, $dbName);
 
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }
 
        $sql = /** @lang text */
            "SELECT $columnsString FROM $tableName";
 
        $result = $conn->query($sql);
 
        $data = array();
        while ($row = mysqli_fetch_assoc($result)) {
            $data[] = $row;
        }
 
        $conn->close();
 
        return $data;
    }
 
    /**
     * @param string $string
     * @return bool
     */
    private static function passesValidation($string)
    {
        return !preg_match_all('/[^a-z_]/', $string);
    }
}
"TicketTracker/app/store/TicketStore.js":
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
Ext.define('TicketTracker.store.TicketStore', {
    extend: 'Ext.data.Store',
    model: 'TicketTracker.model.Ticket',
    autoLoad: true,
    storeId: 'TicketStore',
    proxy: {
        type: 'ajax',
        url: 'app/data/read.php',
        reader: {
            type: 'json'
        }
    }
});
Наверняка потом еще буду играться с директориями. Возможно создам "helpers", где буду хранить generic функционал. Пока работает. Если будут предложения по улучшению кода, буду рад проанализировать.
0
BANO
24.02.2016, 23:49     Корректное подключение php (reader) к модели. Или к store
  #4

Не по теме:

ну с php я вообще плохо
мне как-то js роднее

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2016, 23:49
Привет! Вот еще темы с ответами:

PHP-Excel-Reader
Всем добрый день! Если кто-нибудь сможет помочь, то реально решит проблему над которой я сижу уже...

Redbean php Store requires a bean, got: array
$db = R::getAll('SELECT * FROM notifications'); if($db) { foreach ($db as...

Red Bean PHP ошибка сохранения. R::store();
//$uid Массив с ID (00000000,00000001...) $eventscount = "12"; //Название столбца в таблице....

Strict Standards: Declaration of VirtueMartModelMedia::store() should be compatible with VmModel::store($data)
Strict Standards: Declaration of VirtueMartModelMedia::store() should be compatible with...

Undefined index: submit in C:\xampp\htdocs\ph\store.php on line 11
Я понимаю что за ошибка но не пойму как ее исправить! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML...

Ошибка Undefined index: submit in C:\xampp\htdocs\ph\store.php on line 11
Как исправить эту ошибку и еще если я загрузил фото что бы я мог загрузить еще <!DOCTYPE HTML...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.