本文整理汇总了PHP中Debug::friendlyError方法的典型用法代码示例。如果您正苦于以下问题:PHP Debug::friendlyError方法的具体用法?PHP Debug::friendlyError怎么用?PHP Debug::friendlyError使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Debug
的用法示例。
在下文中一共展示了Debug::friendlyError方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onBeforeInit
/**
* If current logged in member is not an admin and not trying to log in to the admin
* or run a /dev/build then display an {@link ErrorPage}.
*
* @see UnderConstruction_Decorator::requireDefaultRecords()
* @return Void
*/
public function onBeforeInit()
{
$siteConfig = SiteConfig::current_site_config();
$siteUnderConstruction = $siteConfig->UnderConstruction;
if ($siteUnderConstruction) {
//Check to see if running /dev/build
$runningDevBuild = $this->owner && $this->owner->data() instanceof ErrorPage;
if (!Permission::check('ADMIN') && strpos($_SERVER['REQUEST_URI'], '/admin') === false && strpos($_SERVER['REQUEST_URI'], '/Security') === false && !Director::isDev() && !$runningDevBuild) {
Debug::friendlyError(503);
exit;
}
}
}
示例2: output
/**
* Send this HTTPReponse to the browser
*/
function output()
{
// Attach appropriate X-Include-JavaScript and X-Include-CSS headers
if (Director::is_ajax()) {
Requirements::include_in_response($this);
}
if (in_array($this->statusCode, self::$redirect_codes) && headers_sent($file, $line)) {
$url = $this->headers['Location'];
echo "<p>Redirecting to <a href=\"{$url}\" title=\"Please click this link if your browser does not redirect you\">{$url}... (output started on {$file}, line {$line})</a></p>\n\t\t\t<meta http-equiv=\"refresh\" content=\"1; url={$url}\" />\n\t\t\t<script type=\"text/javascript\">setTimeout('window.location.href = \"{$url}\"', 50);</script>";
} else {
if (!headers_sent()) {
header($_SERVER['SERVER_PROTOCOL'] . " {$this->statusCode} " . $this->getStatusDescription());
foreach ($this->headers as $header => $value) {
header("{$header}: {$value}");
}
}
if (Director::isLive() && $this->isError()) {
Debug::friendlyError($this->statusCode, $this->getStatusDescription());
} else {
echo $this->body;
}
}
}
示例3: fatalHandler
static function fatalHandler($errno, $errstr, $errfile, $errline, $errcontext)
{
if (self::$send_errors_to) {
self::emailError(self::$send_errors_to, $errno, $errstr, $errfile, $errline, $errcontext, "Error");
}
if (Director::isDev()) {
Debug::showError($errno, $errstr, $errfile, $errline, $errcontext);
} else {
Debug::friendlyError($errno, $errstr, $errfile, $errline, $errcontext);
}
die;
}
示例4: ProcessOrder
/**
* Process the order by sending form information to Payment class.
*
* TODO send emails from this function after payment is processed
*
* @see Payment::processPayment()
* @param Array $data Submitted form data via POST
* @param Form $form Form data was submitted from
*/
function ProcessOrder($data, $form)
{
//Check payment type
$paymentClass = !empty($data['PaymentMethod']) ? $data['PaymentMethod'] : null;
$payment = class_exists($paymentClass) ? new $paymentClass() : null;
if (!($payment && $payment instanceof Payment)) {
Debug::friendlyError(403, _t('CheckoutPage.NOT_VALID_METHOD', "Sorry, that is not a valid payment method."), _t('CheckoutPage.TRY_AGAIN', "Please go back and try again."));
return;
}
//Save or create a new customer/member
//Need to save billing address info to Member for Payment class to work
$memberData = array('FirstName' => $data['Billing']['FirstName'], 'Surname' => $data['Billing']['Surname'], 'Address' => $data['Billing']['Address'], 'AddressLine2' => $data['Billing']['AddressLine2'], 'City' => $data['Billing']['City'], 'State' => $data['Billing']['State'], 'Country' => $data['Billing']['Country'], 'PostalCode' => $data['Billing']['PostalCode']);
if (!($member = DataObject::get_one('Member', "\"Email\" = '" . $data['Email'] . "'"))) {
$member = new Customer();
$form->saveInto($member);
$member->FirstName = $data['Billing']['FirstName'];
$member->Surname = $data['Billing']['Surname'];
$member->Address = $data['Billing']['Address'];
$member->AddressLine2 = $data['Billing']['AddressLine2'];
$member->City = $data['Billing']['City'];
$member->State = $data['Billing']['State'];
$member->Country = $data['Billing']['Country'];
$member->PostalCode = $data['Billing']['PostalCode'];
$member->Email = $data['Email'];
$member->write();
$member->addToGroupByCode('customers');
$member->logIn();
} else {
if (Customer::currentUser() && Customer::currentUser()->Email == $data['Email']) {
$member->update($data);
$member->write();
} else {
$form->sessionMessage(_t('CheckoutPage.MEMBER_ALREADY_EXISTS', 'Sorry, a member already exists with that email address. If this is your email address, please log in first before placing your order.'), 'bad');
Director::redirectBack();
return false;
}
}
//Save the order
$order = CartControllerExtension::get_current_order();
$items = $order->Items();
$form->saveInto($order);
$order->MemberID = $member->ID;
$order->Status = Order::STATUS_PENDING;
$order->OrderedOn = SS_Datetime::now()->getValue();
$order->write();
//Save the order items (not sure why can't do this with writeComponents() perhaps because Items() are cached?!)
foreach ($items as $item) {
$item->OrderID = $order->ID;
$item->write();
}
//Add addresses to order
$order->addAddressesAtCheckout($data);
//Add modifiers to order
$order->addModifiersAtCheckout($data);
Session::clear('Cart.OrderID');
//Save payment data from form and process payment
$form->saveInto($payment);
$payment->OrderID = $order->ID;
$payment->PaidByID = $member->ID;
$payment->PaidForID = $order->ID;
$payment->PaidForClass = $order->class;
$payment->OrderID = $order->ID;
$payment->Amount->setAmount($order->Total->getAmount());
$payment->Amount->setCurrency($order->Total->getCurrency());
$payment->write();
//Process payment, get the result back
$result = $payment->processPayment($data, $form);
//If instant payment success
if ($result->isSuccess()) {
$order->sendReceipt();
$order->sendNotification();
}
//If payment is being processed
//e.g long payment process redirected to another website (PayPal, DPS)
if ($result->isProcessing()) {
//Defer sending receipt until payment process has completed
//@see AccountPage_Controller::order()
return $result->getValue();
}
//If payment failed
if (!$result->isSuccess() && !$result->isProcessing()) {
$order->sendReceipt();
$order->sendNotification();
}
//Fallback
Director::redirect($order->Link());
return true;
}
示例5: output
/**
* Send this HTTPReponse to the browser
*/
public function output()
{
// Attach appropriate X-Include-JavaScript and X-Include-CSS headers
if (Director::is_ajax()) {
Requirements::include_in_response($this);
}
if (in_array($this->statusCode, self::$redirect_codes) && headers_sent($file, $line)) {
$url = Director::absoluteURL($this->headers['Location'], true);
$urlATT = Convert::raw2htmlatt($url);
$urlJS = Convert::raw2js($url);
$title = Director::isDev() ? "{$urlATT}... (output started on {$file}, line {$line})" : "{$urlATT}...";
echo <<<EOT
<p>Redirecting to <a href="{$urlATT}" title="Click this link if your browser does not redirect you">{$title}</a></p>
<meta http-equiv="refresh" content="1; url={$urlATT}" />
<script type="text/javascript">setTimeout(function(){
\twindow.location.href = "{$urlJS}";
}, 50);</script>";
EOT;
} else {
$line = $file = null;
if (!headers_sent($file, $line)) {
header($_SERVER['SERVER_PROTOCOL'] . " {$this->statusCode} " . $this->getStatusDescription());
foreach ($this->headers as $header => $value) {
header("{$header}: {$value}", true, $this->statusCode);
}
} else {
// It's critical that these status codes are sent; we need to report a failure if not.
if ($this->statusCode >= 300) {
user_error("Couldn't set response type to {$this->statusCode} because " . "of output on line {$line} of {$file}", E_USER_WARNING);
}
}
// Only show error pages or generic "friendly" errors if the status code signifies
// an error, and the response doesn't have any body yet that might contain
// a more specific error description.
if (Director::isLive() && $this->isError() && !$this->body) {
Debug::friendlyError($this->statusCode, $this->getStatusDescription());
} else {
echo $this->body;
}
}
}
示例6: output
/**
* Send this HTTPReponse to the browser
*/
public function output()
{
// Attach appropriate X-Include-JavaScript and X-Include-CSS headers
if (Director::is_ajax()) {
Requirements::include_in_response($this);
}
if (in_array($this->statusCode, self::$redirect_codes) && headers_sent($file, $line)) {
$url = $this->headers['Location'];
echo "<p>Redirecting to <a href=\"{$url}\" title=\"Click this link if your browser does not redirect you\">" . "{$url}... (output started on {$file}, line {$line})</a></p>\n\t\t\t<meta http-equiv=\"refresh\" content=\"1; url={$url}\" />\n\t\t\t<script type=\"text/javascript\">setTimeout('window.location.href = \"{$url}\"', 50);</script>";
} else {
if (!headers_sent()) {
header($_SERVER['SERVER_PROTOCOL'] . " {$this->statusCode} " . $this->getStatusDescription());
foreach ($this->headers as $header => $value) {
header("{$header}: {$value}", true, $this->statusCode);
}
}
// Only show error pages or generic "friendly" errors if the status code signifies
// an error, and the response doesn't have any body yet that might contain
// a more specific error description.
if (Director::isLive() && $this->isError() && !$this->body) {
Debug::friendlyError($this->statusCode, $this->getStatusDescription());
} else {
echo $this->body;
}
}
}
示例7: process
public function process($data, $form)
{
//Check payment type
try {
$paymentMethod = $data['PaymentMethod'];
$paymentProcessor = PaymentFactory::factory($paymentMethod);
} catch (Exception $e) {
Debug::friendlyError(403, _t('CheckoutPage.NOT_VALID_METHOD', "Sorry, that is not a valid payment method."), _t('CheckoutPage.TRY_AGAIN', "Please go back and try again."));
return;
}
$member = Customer::currentUser();
$orderID = Session::get('Repay.OrderID');
if ($orderID) {
$order = DataObject::get_by_id('Order', $orderID);
}
Session::clear('Repay.OrderID');
$order->onBeforePayment();
try {
$paymentData = array('Amount' => number_format($order->TotalOutstanding()->getAmount(), 2, '.', ''), 'Currency' => $order->TotalOutstanding()->getCurrency(), 'Reference' => $order->ID);
$paymentProcessor->payment->OrderID = $order->ID;
$paymentProcessor->payment->PaidByID = $member->ID;
$paymentProcessor->setRedirectURL($order->Link());
$paymentProcessor->capture($paymentData);
} catch (Exception $e) {
//This is where we catch gateway validation or gateway unreachable errors
$result = $paymentProcessor->gateway->getValidationResult();
$payment = $paymentProcessor->payment;
//TODO: Need to get errors and save for display on order page
SS_Log::log(new Exception(print_r($result->message(), true)), SS_Log::NOTICE);
SS_Log::log(new Exception(print_r($e->getMessage(), true)), SS_Log::NOTICE);
$this->controller->redirect($order->Link());
}
}
示例8: goToCheckout
/**
* Update the current cart quantities and redirect to checkout.
*
* @param Array $data Data submitted from the form via POST
* @param Form $form Form that data was submitted from
*/
public function goToCheckout(array $data, Form $form)
{
$this->saveCart($data, $form);
if ($checkoutPage = DataObject::get_one('CheckoutPage')) {
$this->controller->redirect($checkoutPage->AbsoluteLink());
} else {
Debug::friendlyError(500);
}
}
示例9: fatalHandler
/**
* Handle a fatal error, depending on the mode of the site (ie: Dev, Test, or Live).
*
* Runtime execution dies immediately once the error is generated.
*
* @param unknown_type $errno
* @param unknown_type $errstr
* @param unknown_type $errfile
* @param unknown_type $errline
* @param unknown_type $errcontext
*/
static function fatalHandler($errno, $errstr, $errfile, $errline, $errcontext)
{
if (self::$send_errors_to) {
self::emailError(self::$send_errors_to, $errno, $errstr, $errfile, $errline, $errcontext, "Error");
}
self::log_error_if_necessary($errno, $errstr, $errfile, $errline, $errcontext, "Error");
if (Director::isDev() || Director::is_cli()) {
Debug::showError($errno, $errstr, $errfile, $errline, $errcontext, "Error");
} else {
Debug::friendlyError();
}
exit(1);
}
示例10: process
public function process($data, $form)
{
$this->extend('onBeforeProcess', $data);
//Check payment type
try {
$paymentMethod = Convert::raw2sql($data['PaymentMethod']);
$paymentProcessor = PaymentFactory::factory($paymentMethod);
} catch (Exception $e) {
Debug::friendlyError(403, _t('CheckoutPage.NOT_VALID_METHOD', "Sorry, that is not a valid payment method."), _t('CheckoutPage.TRY_AGAIN', "Please go back and try again."));
return;
}
//Save or create a new customer/member
$member = Customer::currentUser() ? Customer::currentUser() : singleton('Customer');
if (!$member->exists()) {
$existingCustomer = Customer::get()->filter('Email', $data['Email']);
if ($existingCustomer && $existingCustomer->exists()) {
$form->sessionMessage(_t('CheckoutPage.MEMBER_ALREADY_EXISTS', 'Sorry, a member already exists with that email address. If this is your email address, please log in first before placing your order.'), 'bad');
$this->controller->redirectBack();
return false;
}
$member = Customer::create();
$form->saveInto($member);
$member->write();
$member->addToGroupByCode('customers');
$member->logIn();
}
//Save the order
$order = Cart::get_current_order();
$items = $order->Items();
$form->saveInto($order);
$order->MemberID = $member->ID;
$order->Status = Order::STATUS_PENDING;
$order->OrderedOn = SS_Datetime::now()->getValue();
$order->write();
//Saving an update on the order
if ($notes = $data['Notes']) {
$update = new Order_Update();
$update->Note = $notes;
$update->Visible = true;
$update->OrderID = $order->ID;
$update->MemberID = $member->ID;
$update->write();
}
//Add modifiers to order
$order->updateModifications($data)->write();
Session::clear('Cart.OrderID');
$order->onBeforePayment();
try {
$shopConfig = ShopConfig::current_shop_config();
$precision = $shopConfig->BaseCurrencyPrecision;
$paymentData = array('Amount' => number_format($order->Total()->getAmount(), $precision, '.', ''), 'Currency' => $order->Total()->getCurrency(), 'Reference' => $order->ID);
$paymentProcessor->payment->OrderID = $order->ID;
$paymentProcessor->payment->PaidByID = $member->ID;
$paymentProcessor->setRedirectURL($order->Link());
$paymentProcessor->capture($paymentData);
} catch (Exception $e) {
//This is where we catch gateway validation or gateway unreachable errors
$result = $paymentProcessor->gateway->getValidationResult();
$payment = $paymentProcessor->payment;
//TODO: Need to get errors and save for display on order page
SS_Log::log(new Exception(print_r($result->message(), true)), SS_Log::NOTICE);
SS_Log::log(new Exception(print_r($e->getMessage(), true)), SS_Log::NOTICE);
$this->controller->redirect($order->Link());
}
}