w php.ini (dla cli) wpisać:
xdebug.remote_enable=1
przed poleceniem app/console wpisać:
SERVER_PORT=9000 SERVER_NAME='PHPSTORM' php -dxdebug.remote_autostart=On app/console test
xdebug.remote_enable=1
SERVER_PORT=9000 SERVER_NAME='PHPSTORM' php -dxdebug.remote_autostart=On app/console test
Za pomocą bundla FOSJsRoutingBundle można korzystać z routingu Symfony w javascriptowym kodzie. Poniżej krótki przykład:
PHP:
/**
* @Route("/ks", options={"expose" = true}, name="nfz.raport_wykbadpoz_kolumny_standardowe")
* @Template("raport/kolumny_standardowe.html.twig")
*
* @return array
*/
public function kolumnyStandardoweAction()
{
$ar_kolumny_standardowe = $this->raportWykbadpozManager->getKolumnyStandardowe();
return compact('ar_kolumny_standardowe');
}
JavaScript:
$.wczytajKolumnyStandardowe = function(url){
var kolumny_standardowe = $("#kolumny_standardowe");
$.post(Routing.generate("nfz.raport_wykbadpoz_kolumny_standardowe"), {}, function(data){
kolumny_standardowe.html(data);
});
};
Należy pamiętać o options={"expose" = true} w annotacjach. Więcej informacji na githubie.
W Symfony po submicie formularza wracamy do tej samej akcji (w naszym przypadku do indexAction()). Aby to zmienić wystarczy dodać odpowiednią opcję przy tworzeniu obiektu formularza (form). Istnieje również możliwość otworzenia wyniku w nowym oknie. Całość można zobaczyć w poniższym kodzie:
/**
* @Route("/", name="nfz.raport_wykbapoz")
* @Template()
*
* @return array
*/
public function indexAction()
{
//...
$form = $this->createForm('nfz_raport_wykbadpoz', $object, [
'action' => $this->generateUrl('nfz.raport_wykbadpoz_wynik'),
'attr' => [
'target' => '_blank'
]
]);
return [
'form' => $form->createView()
];
}
/**
* @Route("/wynik", name="nfz.raport_wykbadpoz_wynik")
* @Template()
*
* @param Request $request
* @return array
*/
public function wynikAction(Request $request)
{
//zabezpieczenie malutkie
if($request->getMethod() != 'POST') {
return new RedirectResponse($this->generateUrl('nfz.raport_wykbapoz'));
}
//utworzenie obiektu formularza
$form = $this->createForm('nfz_raport_wykbadpoz');
//pobranie danych z submitowanego formularza
$form->handleRequest($request);
//walidacja formularza
if($form->isValid()){
//pobranie danych z formularza
$data = $form->getData();
}
//...
return [];
}
Widać tutaj, że funkcja kontrolera wynikAction() przchwytuje dane z submitowanego w indexAction() formularza.
Czasem przed wykonaniem pewnej akcji (np. przed usunięciem pozycji) chcemy wyświetlić okienko potwierdzające czy na pewno wykonać daną czynność. Aby to zrobić wystarczy dodać do linka atrybut onclick:
Usuń
function confirmDelete(id) {
return confirm("Czy na pewno usunąć wybraną pozycję (" + id + ")?");
}
DATE_FORMAT_LC3="l, d F Y"
DATE_FORMAT_LC3="l, d-m-Y"
sudo apt-get install make sudo apt-get install postgresql sudo apt-get install postgresql-server-dev-9.3 # utworzenie w bazie usera redmine psql -U postgresql template1 create user redmine with password 'twoje_haselko'; alter user redmine with superuser; # wczytanie kopii bazy \i backup/redmine/day/redmine-2015.03.21.15.28.sql # wychodzimy z bazy i instalujemy kolejne rzeczy sudo apt-get install ruby1.9.3 libmysqlclient-dev sudo apt-get install libmagickcore-dev libmagickwand-dev sudo gem install bundler sudo gem install json -v '1.7.3' sudo gem install pg -v '0.13.2' cd redmine/redmine-2.0/ bundle install --without development test # odpalenie redmine bundle exec ruby script/rails server webrick -e production # sprawdzenie czy wszystko smiga wchodzac przez http://ip-serwera:3000Jeśli wszytko ładnie działa to możemy zabrać się za instalację Apache2 oraz Passengera:
sudo apt-get install apache2 sudo gem install passenger sudo apt-get install libapache2-mod-passengerDodajemy PassengerDefaultUser www-data (tylko tę linię) do pliku /etc/apache2/mods-available/passenger.conf - cały plik powinien wyglądać mniej więcej tak:
Tworzymy plik /etc/apache2/sites-available/redmine i wpisujemy w nim:PassengerDefaultUser www-data PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini PassengerDefaultRuby /usr/bin/ruby
[VirtualHost *:80]
ServerName redmine.lh
DocumentRoot /home/user/redmine/redmine-2.0/public
ServerAdmin twoj@mail.pl
LogLevel warn
ErrorLog /var/log/apache2/redmine_error
CustomLog /var/log/apache2/redmine_access combined
[Directory /home/user/redmine/redmine-2.0/public]
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
[/Directory]
[/VirtualHost]
Zamień znaki [] na <>.
sudo ln -s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/redmine sudo a2enmod passenger sudo service apache2 restart
# zatrzymujemy apache'a sudo service apache2 stop # usuwamy apache'a z autostartu sudo update-rc.d apache2 disable # instalujemy nginx'a sudo apt-get update sudo apt-get install nginx sudo service nginx start sudo service nginx status # instalujemy PHP FPM sudo apt-get install php5-fpm # zmieniamy cgi.fix_pathinfo z 1 na 0 sudo mc -e /etc/php5/fpm/php.ini -> cgi.fix_pathinfo=0 # restartujemy PHP FPM sudo service php5-fpm restart