Showing posts with label CakePHP. Show all posts
Showing posts with label CakePHP. Show all posts
28 June, 2011
WordPress og CakePHP: accesslevels
På WordPress Codex kan man læse, at access levels er forældede; men et kig i databasen viser, at de stadig er en del af brugerprofilen. Eftersom disse levels blot er et tal i databasen, så kan man sætte CakePHP i stand til at læse tabellen. Og dermed er det nemt at styre brugeradgangen. Men det er et åbent spørgsmål om disse talværdier forsvinder?
20 June, 2011
Kontemplation - WordPress og CakePHP
Denne tråd anbefaler at lægge WordPress i
## ../cake/app/webroot/blog/
Det må kunne lade sig gøre at bruge CakePHP sammen med WP, fx til styring af brugeradgang.
Denne tråd bruger data fra WPs login via php.
Hvis metoden virker, så kan man bruge WP som login og til styring af rettigheder.
WP giver adgang til brugerinformationer ved hjælp af $current_user:
<?php global $current_user;
get_currentuserinfo();
echo 'Username: ' . $current_user->user_login . "\n";
echo 'User email: ' . $current_user->user_email . "\n";
echo 'User first name: ' . $current_user->user_firstname . "\n";
echo 'User last name: ' . $current_user->user_lastname . "\n";
echo 'User display name: ' . $current_user->display_name . "\n";
echo 'User ID: ' . $current_user->ID . "\n";
?>
Så kan man tjekke om brugeren er logget ind:
<?php
require('./wp-blog-header.php');
?>
og
<?php
if (is_user_logged_in()){
echo "You are logged in.";
}
else {
echo "Please login.";
};
?>
Nøglen er den sidste kontrolstruktur. Her må man kunne gøre brug af CakePHP... eller videresende til passende CakePHP Views og CRUDs.
Selv administratorrollen kan påvises i WP via:
## ../cake/app/webroot/blog/
Det må kunne lade sig gøre at bruge CakePHP sammen med WP, fx til styring af brugeradgang.
Denne tråd bruger data fra WPs login via php.
Hvis metoden virker, så kan man bruge WP som login og til styring af rettigheder.
WP giver adgang til brugerinformationer ved hjælp af $current_user:
<?php global $current_user;
get_currentuserinfo();
echo 'Username: ' . $current_user->user_login . "\n";
echo 'User email: ' . $current_user->user_email . "\n";
echo 'User first name: ' . $current_user->user_firstname . "\n";
echo 'User last name: ' . $current_user->user_lastname . "\n";
echo 'User display name: ' . $current_user->display_name . "\n";
echo 'User ID: ' . $current_user->ID . "\n";
?>
Så kan man tjekke om brugeren er logget ind:
<?php
require('./wp-blog-header.php');
?>
og
<?php
if (is_user_logged_in()){
echo "You are logged in.";
}
else {
echo "Please login.";
};
?>
Nøglen er den sidste kontrolstruktur. Her må man kunne gøre brug af CakePHP... eller videresende til passende CakePHP Views og CRUDs.
Selv administratorrollen kan påvises i WP via:
is_admin();
Sådan: Cakephp og Ubuntu konfiguration
Når CakePHP installeres på en Ubuntu server, så forsvinder layoutet. Det skyldes problemer med konfigurationen af mod_rewrite. Opskrifterne på nettet er ikke altid komplette, så her er den opskrift, der (endelig) virker for mig på Ubuntu 10.04.
Download CakePHP og pak filerne ud, hvor du vil have din cakeroot, jeg bruger fx:
# /var/www/cake/
Husk at give læserettigheder og at tmp skal være skrivbar:
# sudo chmod -R 775 /var/www/cake
# sudo chmod -R 777 /var/www/cake/app/tmp
Først skal mod_rewrite aktiveres i apache, dette gøres i et terminalvindue:
# sudo a2enmod rewrite
Så skal filen /etc/apace2/sites-available/default rettes:
# sudo gedit /etc/apace2/sites-available/default
Tilføj disse linjer:
<directory /var/www/cake/app/webroot>
AllowOverride All
</Directory>
<Directory /var/www/cake>
AllowOverride All
</Directory>
<directory /var/www/cake/app>
AllowOverride All
</Directory>
Måske burde man kunne nøjes med at give tilladelsen AllowOverride All i ../cake; men det virkede ikke på mit system. Til gengæld virker ovenstående.
Herefter skal Apache genstartes:
# sudo /etc/init.d/apache2 restart
Nu mangler de sidste detaljer. På skærmbilledet kan man læse, at "security salt"skal ændres, og at oplysningerne om databasen skal være korrekte. Tilføj disse detaljer i ../cake/app/config/core.php (security salt). I samme directory omdøbes database.php.default til database.php. Filen skal rettes, således at databaseoplysningerne bliver korrekte:
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
);
var $test = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
);
}
Tilbage står kun at tjekke om sagerne virker i en browser:
# firefox http://localhost/cake (bare for at være kontrær og initiere firefox fra et terminalvindue...)
Download CakePHP og pak filerne ud, hvor du vil have din cakeroot, jeg bruger fx:
# /var/www/cake/
Husk at give læserettigheder og at tmp skal være skrivbar:
# sudo chmod -R 775 /var/www/cake
# sudo chmod -R 777 /var/www/cake/app/tmp
Først skal mod_rewrite aktiveres i apache, dette gøres i et terminalvindue:
# sudo a2enmod rewrite
Så skal filen /etc/apace2/sites-available/default rettes:
# sudo gedit /etc/apace2/sites-available/default
Tilføj disse linjer:
<directory /var/www/cake/app/webroot>
AllowOverride All
</Directory>
<Directory /var/www/cake>
AllowOverride All
</Directory>
<directory /var/www/cake/app>
AllowOverride All
</Directory>
Måske burde man kunne nøjes med at give tilladelsen AllowOverride All i ../cake; men det virkede ikke på mit system. Til gengæld virker ovenstående.
Herefter skal Apache genstartes:
# sudo /etc/init.d/apache2 restart
Nu mangler de sidste detaljer. På skærmbilledet kan man læse, at "security salt"skal ændres, og at oplysningerne om databasen skal være korrekte. Tilføj disse detaljer i ../cake/app/config/core.php (security salt). I samme directory omdøbes database.php.default til database.php. Filen skal rettes, således at databaseoplysningerne bliver korrekte:
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
);
var $test = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
);
}
Tilbage står kun at tjekke om sagerne virker i en browser:
# firefox http://localhost/cake (bare for at være kontrær og initiere firefox fra et terminalvindue...)
19 June, 2011
Croogo cms til cakePHP
Croogo er et CMS udviklet til CakePHP. Det lyder jo forjættende, for opsætning af brugerrettigheder er en labyrint i CakePHP. Derfor skulle det prøves. Installationen ødelagde en version af CakePHP, der ellers virkeke. Det kunne jeg ikke få den til igen, selv om jeg er begyndt at installere forfra hver gang noget går galt.
Tjah, det ligner en tendens. ... .. ... .. .....
Croogo kommer med en masse fejlmeddelelser. CakePHP virker nogen gange på Ubuntu. Det kræver held ... hver gang. Det er mit klare indtryk, at hverken CakePHP eller Croogo er modne til andet end eksperimenter. Men hvis det en dag virker, så bliver det smart. Vejledningen til Croogo fortæller ikke præcist, hvordan man installerer. Mine gæt, eksperimenter og forsøg virkede i hvert fald ikke.
"Building PHP Applications" af Porebski m.fl. skriver at Crooga skal installeres i /cake/app - men det ser ud til at Crooga nu pakkes med en fuldstændig CakePHP. Hverken den ene eller den anden tilgang virker.
Nå, det var den aften. Jeg kommer ikke videre i dag, Frameworks kan være så bøvlede, at det ville være hurtigere at udvikle sin egen kode ....
Tjah, det ligner en tendens. ... .. ... .. .....
Croogo kommer med en masse fejlmeddelelser. CakePHP virker nogen gange på Ubuntu. Det kræver held ... hver gang. Det er mit klare indtryk, at hverken CakePHP eller Croogo er modne til andet end eksperimenter. Men hvis det en dag virker, så bliver det smart. Vejledningen til Croogo fortæller ikke præcist, hvordan man installerer. Mine gæt, eksperimenter og forsøg virkede i hvert fald ikke.
"Building PHP Applications" af Porebski m.fl. skriver at Crooga skal installeres i /cake/app - men det ser ud til at Crooga nu pakkes med en fuldstændig CakePHP. Hverken den ene eller den anden tilgang virker.
Nå, det var den aften. Jeg kommer ikke videre i dag, Frameworks kan være så bøvlede, at det ville være hurtigere at udvikle sin egen kode ....
Cakephp og Ubuntu - endnu engang
I konfigurationsfilen kan man fravælge "pretty urls" - filen /var/www/cake/app/config/core.php fortæller hele proceduren. Jeg omdøbte simpelt hen .htaccess til .htaccess.old - og slettede derefter .htaccess.
/**
* To configure CakePHP *not* to use mod_rewrite and to
* use CakePHP pretty URLs, remove these .htaccess
* files:
*
* /.htaccess
* /app/.htaccess
* /app/webroot/.htaccess
*
* And uncomment the App.baseUrl below:
*/
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
/**
---
Dagen efter virker denne opskrift ikke. CakePHP kan være en prøvelse.
/**
* To configure CakePHP *not* to use mod_rewrite and to
* use CakePHP pretty URLs, remove these .htaccess
* files:
*
* /.htaccess
* /app/.htaccess
* /app/webroot/.htaccess
*
* And uncomment the App.baseUrl below:
*/
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
/**
---
Dagen efter virker denne opskrift ikke. CakePHP kan være en prøvelse.
06 June, 2011
Cakephp fra localhost til www server
Man kan ikke kopiere filerne direkte som de ligger på localhost. Sandsynligvis er løsningen at kopiere de individuelle filer med views, controllers etc. manuelt. Ikke just en "piece of cake" løsning (men sådan er det jo hver gang man prøver noget nyt med Cake).
"CakePHP aint piece of Cake"
Metoden med at kopiere views, models og controllere virkede. Derudover skulle:
"CakePHP aint piece of Cake"
Metoden med at kopiere views, models og controllere virkede. Derudover skulle:
- Databasens opsætning konfigureres efter den nye server.
- Core.php kopieres over fra localhost til server (salt-værdierne til kryptering skal være ens, ellers virker de Sha1 krypterede passwordstrenge ikke.
24 May, 2011
Sådan: CakePHP på localhost Ubuntu
"Unreal" giver en opskrift her ... og den virker. Kort fortalt:
Først tjekkes om modulet rewrite er aktivt:
# sudo a2enmod rewrite
Så skal Apache vide, hvor webroot er:
# sudo pico /etc/apache2/sites-available/default
I filen tilføjes de manglende oplysninger:
<directory /var/www/app/webroot>
AllowOverride All
</Directory>
Apache genstartes herefter:
# sudo /etc/init.d/apache2 force-reload
Og herefter virker CakePHP på Ubuntu. Tak til bloggeren "Unreal" for opskriften. Så er der kage.
Prøv også denne grundige vejledning: http://bakery.cakephp.org/articles/BBBThunda/2010/02/25/troubleshooting-cakephp-installation-issues-related-to-apache-2-mod_rewrite-for-beginners
eller her:
http://book.cakephp.org/view/333/A-Note-on-mod_rewrite
Først tjekkes om modulet rewrite er aktivt:
# sudo a2enmod rewrite
Så skal Apache vide, hvor webroot er:
# sudo pico /etc/apache2/sites-available/default
I filen tilføjes de manglende oplysninger:
<directory /var/www/app/webroot>
AllowOverride All
</Directory>
Apache genstartes herefter:
# sudo /etc/init.d/apache2 force-reload
Og herefter virker CakePHP på Ubuntu. Tak til bloggeren "Unreal" for opskriften. Så er der kage.
Prøv også denne grundige vejledning: http://bakery.cakephp.org/articles/BBBThunda/2010/02/25/troubleshooting-cakephp-installation-issues-related-to-apache-2-mod_rewrite-for-beginners
eller her:
http://book.cakephp.org/view/333/A-Note-on-mod_rewrite
Note: Ubuntu og CakePHP
Denne artikel giver en opskrift med modifikationer i Apache. Artiklen slutter med disse ord (efter at ha indledt med hvor "piece of cake" det er at køre CakePHP):
(Næh, det virkede heller ikke.... jeg kan stadig ikke se siderne; men det her med Apache-konfigurationer fik mig til at lede i en anden retning, og det gav pote.)
"It took a little while to realise that the reason this was happening is that CakePHP's .htaccess files were being ignored by Apache. This turned out to be because Ubuntu's default Apache install includes the directive "AllowOverride none", effectively disabling mod_rewrite.
Opened the "000-default" site configuration file for editing.
Then, change the "AllowOverride none" to "AllowOverride all" under the first two sections, "
1gksudo gedit /etc/apache2/sites-enabled/000-default" and " ".
Restart Apache and you should be good to go.
1sudoservice apache2 restart"
(Næh, det virkede heller ikke.... jeg kan stadig ikke se siderne; men det her med Apache-konfigurationer fik mig til at lede i en anden retning, og det gav pote.)
23 May, 2011
Cakephp og Ubuntu
En blogger mener: "i resolved this - i had to add the directory listing to
/etc/apache2/sites-allowed/default then restart apache 2." Måske er det forklaringen på at man ikke har adgang til cakephp fra ubuntu.
Cake kan bage; men ikke ses i browseren.
/etc/apache2/sites-allowed/default then restart apache 2." Måske er det forklaringen på at man ikke har adgang til cakephp fra ubuntu.
Cake kan bage; men ikke ses i browseren.
CakePHP - Ubuntu opsætning
Har uden held brugt en formiddag på at prøve at få cakePHP til at køre på localhost.
Ubuntu opsætning af "cake" - i tilfælde af: "Could not open input file: /usr/share/php/cake/console/cake.php"
# cd /usr/share/php/cake
# ln -s /var/www/cake/cake/console console
Standardopsætningen linker til en forkert mappe.
Husk at ændre:
Hold k... hvor er det besværligt. Bump!
Ja, når CakePHP kører er det så nemt. Når det ikke kører, så kører det ikke. Nu lader jeg det ligge en tid. Hvorfor skal det være så besværligt at lave noget der skulle gøre det let??
Ubuntu opsætning af "cake" - i tilfælde af: "Could not open input file: /usr/share/php/cake/console/cake.php"
# cd /usr/share/php/cake
# ln -s /var/www/cake/cake/console console
Standardopsætningen linker til en forkert mappe.
Husk at ændre:
Cake bager; men man kan ikke se siderne: "The requested URL /cake/posts was not found on this server."Please change the value of 'Security.salt' in app/config/core.phpCodefunction checkSecurityKeys() {if (Configure::read('Security.salt') == 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi') {trigger_error(__('Please change the value of \'Security.salt\' in app/config/core.php to a salt value specific to your application', true), E_USER_NOTICE);Debugger::checkSecurityKeys() - CORE/cake/libs/debugger.php, line 684 include - CORE/cake/libs/view/pages/home.ctp, line 27 View::_render() - CORE/cake/libs/view/view.php, line 731 View::render() - CORE/cake/libs/view/view.php, line 426 Controller::render() - CORE/cake/libs/controller/controller.php, line 909 PagesController::display() - CORE/cake/libs/controller/pages_controller.php, line 83 Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 204 Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171 require - APP/webroot/index.php, line 83 [main] - CORE/index.php, line 55Please change the value of 'Security.cipherSeed' in app/config/core.php
Hold k... hvor er det besværligt. Bump!
Ja, når CakePHP kører er det så nemt. Når det ikke kører, så kører det ikke. Nu lader jeg det ligge en tid. Hvorfor skal det være så besværligt at lave noget der skulle gøre det let??
CakePHP - remember...
---------------------------------------------------------------
Created: asthmablog in /var/www/cake/app/NAMEOFAPPLICATION
---------------------------------------------------------------
Creating file /var/www/cake/app/asthmablog/views/pages/home.ctp
Wrote `/var/www/cake/app/asthmablog/views/pages/home.ctp`
Welcome page created
Random hash key created for 'Security.salt'
Random seed created for 'Security.cipherSeed'
CAKE_CORE_INCLUDE_PATH set to /usr/share/php in webroot/index.php
CAKE_CORE_INCLUDE_PATH set to /usr/share/php in webroot/test.php
Remember to check these value after moving to production server
Cake bake all kører; men siderne kan ikke ses fra localhost.... Jeg bliver vist aldrig gode venner med CakePHP...
Created: asthmablog in /var/www/cake/app/NAMEOFAPPLICATION
---------------------------------------------------------------
Creating file /var/www/cake/app/asthmablog/views/pages/home.ctp
Wrote `/var/www/cake/app/asthmablog/views/pages/home.ctp`
Welcome page created
Random hash key created for 'Security.salt'
Random seed created for 'Security.cipherSeed'
CAKE_CORE_INCLUDE_PATH set to /usr/share/php in webroot/index.php
CAKE_CORE_INCLUDE_PATH set to /usr/share/php in webroot/test.php
Remember to check these value after moving to production server
Cake bake all kører; men siderne kan ikke ses fra localhost.... Jeg bliver vist aldrig gode venner med CakePHP...
22 May, 2011
Cakephp - kæmper med ACL
En ACL driller helt vildt. Kan man fjerne den? Valgte at slette databaserne; men så gik cake bake helt i sort. Genoprettede databaserne, men uden held. Cake er gået i sort. Hvordan kommer man videre?
Og igen ... tjah ... den givne tutorial fra CakePHP virkede heller ikke. De må altså gøre noget ved den dokumentation! Hver gang jeg har prøvet disse tutorials, så er der noget som ikke lige virker.
Jeg har ikke tal på hvor mange gange der har været nødvendigt at begynde helt forfra... Som regel er det lettere at slette alt, for at finde en fejl i de lange koder er helt umuligt. Især når det er uklart, hvor man skal lede.
Suk ... CakePHP er ikke a "piece of cake". Og det irriterer mig grænseløst at læse, hvor "piece of cake" det her at ... [skriv noget] ... hvorefter den givne opskrift får cake til at gå i sort.
Nå: det gode er, at jeg efterhånden kan sætte sagerne op på 10 min...
Og igen ... tjah ... den givne tutorial fra CakePHP virkede heller ikke. De må altså gøre noget ved den dokumentation! Hver gang jeg har prøvet disse tutorials, så er der noget som ikke lige virker.
Jeg har ikke tal på hvor mange gange der har været nødvendigt at begynde helt forfra... Som regel er det lettere at slette alt, for at finde en fejl i de lange koder er helt umuligt. Især når det er uklart, hvor man skal lede.
Suk ... CakePHP er ikke a "piece of cake". Og det irriterer mig grænseløst at læse, hvor "piece of cake" det her at ... [skriv noget] ... hvorefter den givne opskrift får cake til at gå i sort.
Nå: det gode er, at jeg efterhånden kan sætte sagerne op på 10 min...
21 May, 2011
Jammen - CakePHP er jo hamrende smart...
Efter en frustrerende stejl indlæringskurve begynder visionen bag CakaPHP så småt at dæmre. Jeg bager og bager - og det er meget let at sætte sagerne op. Nogen gange tager jeg mig selv i at tænke:
- "Jammen, det er jo hamrende smart, det her..."
Og sådan kan pendulet svinge fra den ene side til den anden side. Jeg skal love for at "cake bake" kan fyre kodelinjer af: modeller, controllere, views, CRUDs og hvad ved jeg. Lige nu eksperimenterer jeg med at tildele brugergrupper rettigheder. Og så begynder det jo at ligne noget seriøst.
- "Jammen, det er jo hamrende smart, det her..."
Og sådan kan pendulet svinge fra den ene side til den anden side. Jeg skal love for at "cake bake" kan fyre kodelinjer af: modeller, controllere, views, CRUDs og hvad ved jeg. Lige nu eksperimenterer jeg med at tildele brugergrupper rettigheder. Og så begynder det jo at ligne noget seriøst.
Cake bake ... AHA!
Efter mange, mange forsøg på at få "cake bake" til at fungere begyndte jeg at analysere fejlmeddelelserne. Tilsyneladende var stien forkert. Cake kunne ikke finde de rette filer.
Det viste sig, at man naturligvis skal stå i ~/cake/app/ og fra denne mappe eksekveres cake bake all så.
De ku de godt ha skrevet... (muligvis har jeg overset en detalje; men lad os bare se bort fra denne umulighed).
Men nu har jeg endelig fået åbnet "bageriet".
PHP Fatal error: ConnectionManager::getDataSource - Non-existent data source default in /web/petj/public_html/cake/cake/libs/model/connection_manager.php on line 102
Fatal error: ConnectionManager::getDataSource - Non-existent data source default in /web/petj/public_html/cake/cake/libs/model/connection_manager.php on line 102
Det viste sig, at man naturligvis skal stå i ~/cake/app/ og fra denne mappe eksekveres cake bake all så.
De ku de godt ha skrevet... (muligvis har jeg overset en detalje; men lad os bare se bort fra denne umulighed).
Men nu har jeg endelig fået åbnet "bageriet".
19 May, 2011
Exit Cake Bake
Jeg følger et kursus i webapplikationsudvikling, hvor vi er blevet introduceret til frameworket CakePHP, der skulle hjælpe os til at programmere større projekter hurtigt.
Det er særdeles vanskeligt at finde kodeeksempler, der virker, når man arbejder med CakePHP. Efterhånden har jeg brugt mange, mange timer på at få noget til at virke med Cake, der burde være dødsimpelt.
Lige nu prøver jeg at lave en log in ... hvilket er relativt simpelt med rå PHP / MySQL. Men med CakePHP er det en ørkenvandring af mislykkede forsøg.
Men dokumentationen er næsten altid mangelfuld - og den ORM, som skulle kunne bage koden er fyldt med fejl. CakePHP har sine skønheder; men så sandelig også alvorlige mangler.
Jeg mener stadig, at ideen med et framework er at lave kode hurtigt og let.
Cake bake
Det er så let at bage med cake bake, kan man læse; men min skærm bliver fyldt med fejlmeddelelser. Jeg har prøvet flere installationer, servere og databaser med samme resultat. Jeg har ellers set mange gøre det på nettet; men når jeg gentager det samme - med copy paste af koder og databaser, så virker det ikke. Der er altid lige et eller andet, der uheldigvis ikke virker. Det bliver man altså træt af.
Man kan spilde meget tid på et framework, og tid har jeg ikke. Så nu vil jeg kun bruge de dele der faktisk virker - altså virker for mig:
Ind til videre har jeg droppet følgende i CakePHP:
Artikler om CakePHP er næsten altid i det lyserøde felt. Alt beskrives som "easy" - og det er som en rød klud mod en tyr, når man har siddet i timevis uden at skidtet virker - eller med forklaringer, der er uforståelige opremsninger af 3-bogstavsforkortelser: ACO, ACL, ORM...
Nej, jeg kan altså ikke tilslutte mig CakePHPs "evangelister". CakePHP er alt andet end "easy" ... og slet ikke når skærmen konstant fyldes af "PHP fatal error...." mig her og "PHP fatal error" mig der...
Exit Cake Bake
Efter at ha skrevet ovenstående tænkte jeg: "Det kan da ikke passe, at bake ikke virker. Jeg prøver lige igen..." Og det var spild af tid (igen). Selvfølgelig virkede bake heller ikke denne gang! For at være helt ærlig - nu gider jeg ikke bruge mere tid på "cake bake ..."
Det er særdeles vanskeligt at finde kodeeksempler, der virker, når man arbejder med CakePHP. Efterhånden har jeg brugt mange, mange timer på at få noget til at virke med Cake, der burde være dødsimpelt.
Lige nu prøver jeg at lave en log in ... hvilket er relativt simpelt med rå PHP / MySQL. Men med CakePHP er det en ørkenvandring af mislykkede forsøg.
Men dokumentationen er næsten altid mangelfuld - og den ORM, som skulle kunne bage koden er fyldt med fejl. CakePHP har sine skønheder; men så sandelig også alvorlige mangler.
Jeg mener stadig, at ideen med et framework er at lave kode hurtigt og let.
Cake bake
Det er så let at bage med cake bake, kan man læse; men min skærm bliver fyldt med fejlmeddelelser. Jeg har prøvet flere installationer, servere og databaser med samme resultat. Jeg har ellers set mange gøre det på nettet; men når jeg gentager det samme - med copy paste af koder og databaser, så virker det ikke. Der er altid lige et eller andet, der uheldigvis ikke virker. Det bliver man altså træt af.
Man kan spilde meget tid på et framework, og tid har jeg ikke. Så nu vil jeg kun bruge de dele der faktisk virker - altså virker for mig:
Ind til videre har jeg droppet følgende i CakePHP:
- Auth - loginfunktioner
- Cake bake
- Nemt at bruge data fra databaser
- Scaffolding - hvor man i skitseform kan sætte tingene op.
Artikler om CakePHP er næsten altid i det lyserøde felt. Alt beskrives som "easy" - og det er som en rød klud mod en tyr, når man har siddet i timevis uden at skidtet virker - eller med forklaringer, der er uforståelige opremsninger af 3-bogstavsforkortelser: ACO, ACL, ORM...
Nej, jeg kan altså ikke tilslutte mig CakePHPs "evangelister". CakePHP er alt andet end "easy" ... og slet ikke når skærmen konstant fyldes af "PHP fatal error...." mig her og "PHP fatal error" mig der...
Exit Cake Bake
Efter at ha skrevet ovenstående tænkte jeg: "Det kan da ikke passe, at bake ikke virker. Jeg prøver lige igen..." Og det var spild af tid (igen). Selvfølgelig virkede bake heller ikke denne gang! For at være helt ærlig - nu gider jeg ikke bruge mere tid på "cake bake ..."
03 May, 2011
CakePHP - over åen efter vand?
Når man arbejder med et framework kan selv de mest simple handlinger blive komplekse. Måske kommer gevinsten på lang sigt; men på den korte banehalvdel er det altså bøvlet at sætte sig ind i dette framework.
Det er lidt som at gå over åen efter vand, når man skal pløje gennem lange tekster, der forklarer noget, der kunne være ordnet med en simpel SQL-sætning. Fx prøver jeg at sortere indlæg i en blog, så det nyeste vises først. Selv includes kræver mystiske og magiske metamanipulationer...
Det burde være piece of cake; men den slags kræver virkelig en mental indsats, hvis man bruger CakePHP.
Og løsningen på at sortere blogindlæg. Det er naturligvis ren kagemagi at skrive:
# $posts = Set::sort($posts, '{n}.Posts.id', 'desc');
Omvendt, når frameworkets idé dæmrer, så giver CakePHP en række redskaber, der dels giver systematik til udviklingen af webapplikationer og som dels gør det nemt at strukturere produktionen. Adgangen til databaser, relationer mellem tabeller og meget andet kan ordnes relativt enkelt.
Men det kræver naturligvis, at man kan sin "kagebog".
Det er lidt som at gå over åen efter vand, når man skal pløje gennem lange tekster, der forklarer noget, der kunne være ordnet med en simpel SQL-sætning. Fx prøver jeg at sortere indlæg i en blog, så det nyeste vises først. Selv includes kræver mystiske og magiske metamanipulationer...
Det burde være piece of cake; men den slags kræver virkelig en mental indsats, hvis man bruger CakePHP.
Og løsningen på at sortere blogindlæg. Det er naturligvis ren kagemagi at skrive:
# $posts = Set::sort($posts, '{n}.Posts.id', 'desc');
Omvendt, når frameworkets idé dæmrer, så giver CakePHP en række redskaber, der dels giver systematik til udviklingen af webapplikationer og som dels gør det nemt at strukturere produktionen. Adgangen til databaser, relationer mellem tabeller og meget andet kan ordnes relativt enkelt.
Men det kræver naturligvis, at man kan sin "kagebog".
26 April, 2011
CakePHP problem løst
![]() |
| CakePHPs tutorial blog. |
Gennemførte en tutorial med en CakePHP blog. I dag var samtlige indlæg slettet, man kan ikke oprette nye indlæg og CakePHP viser denne fejl: "Error: The requested address '/' was not found on this server." På nettet har flere haft lignende problemer.
Besluttede den noget drastiske kur: slet alt og upload igen. Få database og CakePHP til at spile sammen. Konfigurere CakePHP igen. Derefter tjekkedes modulerne for fejl. Eftersom "add" modulet ikke virkede, så var det logisk at prøve at rette netop denne fil. Og så virkede sagerne ellers.
Fejlen ligger i filen, der skal tilføje nye poster; men filen virkede altså i går. En copy / paste løste problemet. Mystisk...
Nu tager jeg en backup. Det gør jeg, igå.
Subscribe to:
Posts (Atom)

