2016-01-28 3 views
1

Я создаю приложение на основе codeigniter. У меня есть четыре типа пользователейКак предотвратить медленное время загрузки приложения codeigniter

  • Администратор
  • учитель
  • Student
  • Родители

и я создал различные контроллеры и тот же файл модели для указанных пользователей. Также каждый файл контроллера составляет минимум 150 КБ, а мое приложение загружается медленнее, чем ожидалось. поэтому, если я разделю функции контроллера в разных файлах и функциях модели в разных, то мое приложение будет быстрее, чем сейчас?

+0

показать одну функцию вашего контроллера, потому что 150kb много, я быстро проверил мои контроллеры, а самый большой из них имеет 13kb (с ~ 300 строк) , и я говорю о проекте с ~ 250 контроллерами .. – sintakonte

+0

, пожалуйста, посмотрите мой код контроллера для возврата книги библиотеки ... У меня есть 300+ контроллеров в том же имени файла, что и контроллер администратора ... это хорошая или плохая практика в разработке приложений. является основной причиной медленной работы приложения. и у меня есть 51 таблицы, хранящиеся в базе данных, что является основной причиной замедления моего приложения? –

ответ

1

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

Кроме того, если вы хотите знать, что замедляет ваше приложение, Codeigniter поставляется с отличным бенчмаркингом и Профилирование инструмент

Если вы хотите увидеть резюме, вы должны использовать класс Profiler - это покажет некоторые результаты тестов

просто поместите эту строку в контроллере

$this->output->enable_profiler(TRUE); 

Для получения дополнительной информации посмотри в документации - ниже приведены ссылки

Codeigniter Profiler

Benchmark Class

0

Это функция для книги системы возврата

/**********MANAGE LIBRARY/ BOOK RETURN********************/ 
 
function book_return($param1 = '', $param2 = '', $param3 = '') 
 
{ 
 
if ($this->session->userdata('admin_login') != 1) 
 
redirect('login', 'refresh'); 
 
if($param1 == 'create'){ 
 
$issue_id = $param2; 
 
$issued_info = $this->crud_model->get_issued_info_for_return($issue_id); 
 

 
foreach($issued_info as $row) 
 
{ 
 
$data['book_id'] = $row['book_id']; 
 
$data['member_type'] = $row['member_type']; 
 
$data['member_id'] = $row['member_id']; 
 
$data['issue_date'] = $row['issue_date']; 
 
$issue_id = $row['issue_id']; 
 
} 
 
$data['returned_date'] = date("Y/m/d"); 
 
$data['status'] = 1; 
 
$this->db->insert('book_return', $data);//can return as default 
 
$stock = $this->crud_model->check_max_available_book_no($data['book_id']); 
 
$dataUpdate['copy_no'] = $stock+1; // as returned +1 the copy no of to the book store 
 
$this->db->where('book_id', $row['book_id']); 
 
$this->db->update('book', $dataUpdate); 
 

 
// as returned, delete the issue list to the related issue id 
 
$this->db->where('issue_id', $param2); 
 
$this->db->delete('book_issue'); 
 

 
$this->session->set_flashdata('flash_message' , get_phrase('book_returned_successfully')); 
 
redirect(base_url() . 'index.php?admin/book_return', 'refresh');  
 
} 
 

 
if ($param1 == 'do_update') { 
 
$data['issue_date'] = $this->input->post('issue_date'); 
 
$data['book_id'] = $this->input->post('book_id'); 
 
$data['member_type'] = $this->input->post('user_type'); 
 
$data['member_id'] = $this->input->post('member_id'); 
 
//$data['return_date'] = date('Y/m/d', strtotime($data['issue_date']. ' + '.$this->curd_model->get_max_borrow_days($set_id, $mem_type).' days')); 
 
$data['lib_setting_id'] = $this->input->post('lib_setting_id'); 
 
$data['status'] = 1; 
 
$this->db->where('set_id', $param2); 
 
$this->db->update('library_setting', $data); 
 
$this->session->set_flashdata('flash_message' , get_phrase('data_updated')); 
 
redirect(base_url() . 'index.php?admin/library_setting', 'refresh'); 
 
} else if ($param1 == 'edit') { 
 
$page_data['edit_data'] = $this->db->get_where('library_setting', array(
 
'set_id' => $param2 
 
))->result_array(); 
 
} 
 
if ($param1 == 'delete') { 
 
$this->db->where('return_id', $param2); 
 
$this->db->delete('book_return'); 
 
$this->session->set_flashdata('flash_message' , get_phrase('return_deleted')); 
 
redirect(base_url() . 'index.php?admin/book_return', 'refresh'); 
 
} 
 
$page_data['serialNo'] = 1; 
 
$page_data['serialNum'] = 1; 
 
$page_data['book_return_by_staff'] = $this->crud_model->get_book_return_list(2); 
 
$page_data['book_return_by_student'] = $this->crud_model->get_book_return_list(1); 
 
$page_data['page_name'] = 'book_return'; 
 
$page_data['page_title'] = get_phrase('book_return'); 
 
$this->load->view('backend/index', $page_data); 
 

 
}